标签: linux-networking

debian set eth0 autoneg off speed 1000 duplex full: 无效参数

我使用 debian 来处理我的事情,但是当我将速度配置为 1000 和双工满时,会发生错误

我使用的确切命令: ethtool -s eth0 autoneg off speed 1000 duplex full

  Cannot set new settings: Invalid argument
         not setting speed
         not setting duplex
         not setting autoneg
  Cannot set new settings: Invalid argument
         not setting speed
         not setting duplex
         not setting autoneg
Run Code Online (Sandbox Code Playgroud)

这是我的 eth0 信息。

   Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Full 
     Supported pause frame use: No
     Supports auto-negotiation: Yes
     Advertised link modes:  10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Full …
Run Code Online (Sandbox Code Playgroud)

debian ethtool linux-networking

6
推荐指数
2
解决办法
3万
查看次数

列出路由表需要很长时间才能完成

当我使用 打印在我的计算机上定义的路线时route,大约需要 5 到 20 秒才能完成。为什么要花这么多时间?

启用 VPN:

$ time sudo route
Kernel IP routing table
(...)
real    0m21.423s
user    0m0.000s
sys 0m0.012s
Run Code Online (Sandbox Code Playgroud)

在没有 VPN 的情况下,这大约是 5 秒 - 尽管如此,计算机在这段时间内可以做很多事情。我重复了几次测量,每次尝试都得到非常相似的结果。

我的机器是带有 3.0.0 内核的 Ubuntu,但据我所知,其他计算机上的路由以相同的方式工作。

linux route linux-networking

6
推荐指数
1
解决办法
6100
查看次数

检测http的客户端往返时间的廉价方法

我试图找出一种方法来检测连接到我服务器上端口 80 的每个 IP 的往返时间。有什么好的方法可以做到这一点?

有很多连接,ping每个ip是不切实际的。我在想,以某种方式测量服务器发送 syn/ack 数据包和服务器收到它的 ack 之间的时间差。

有没有办法便宜地记录这个?也许使用一些神奇的 tcpdump 过滤器?

此练习的目标是汇总数据并计算是否存在任何路由效率低下的情况。假设一个地区的一个 ISP 可能路由不正确,等等。

FWIW 网络服务器是 nginx。

networking linux nginx tcpdump linux-networking

6
推荐指数
1
解决办法
5563
查看次数

任意VLAN接口名称

有没有一种方法来命名一个VLAN接口任意像eth72ext19代替四个标准nameing方案eth0.72vlan19(和填补的变化)?

不要没有头绪。也许udev?

networking linux debian vlan linux-networking

6
推荐指数
1
解决办法
6871
查看次数

Linux下IPv6的TCP拥塞控制

我可以打字

echo bbr > /proc/sys/net/ipv4/tcp_congestion_control
Run Code Online (Sandbox Code Playgroud)

更改在 IPv4 上运行的 TCP 连接的拥塞控制算法,但是对于那些通过 IPv6 到达的连接,我该如何做呢?

上面的命令是否为两者都设置了它?

linux ipv6 tcp linux-networking bbr

6
推荐指数
2
解决办法
2303
查看次数

How to add a static secondary IP to a DHCP interface using netplan?

我的服务器有一个文件 /etc/netplan/50-cloud-init.yaml ,内容如下:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: fa:**:**:**:**:**
            set-name: ens3
Run Code Online (Sandbox Code Playgroud)

这导致以下接口配置:

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global dynamic …
Run Code Online (Sandbox Code Playgroud)

dhcp static-ip linux-networking netplan

6
推荐指数
2
解决办法
9419
查看次数

Docker 主机的正确 iptables 规则是什么?

我有带 Docker 的 Ubuntu 服务器来为 MySQL 和 SSH/SFTP 提供服务,我需要对除330622之外的所有端口进行防火墙设置,这是非常标准和微不足道的要求,对吧?

现在,我设法找到了一种解决方案,但在应用它之后,它对我来说并不完全有效,要么:

  1. 我无法访问任何提到的服务(默认情况下)
  2. 我无法从容器内访问互联网(如果我放入iptables: falseDocker 的daemon.json配置文件)

我尝试了许多其他搜索结果,但它们大多非常复杂,以至于我不明白他们在做什么,或者他们编写了大量脚本,这让我成为一个 iptables 外行,从它那里获取一些东西是一项不可能完成的任务。

提议的解决方案看起来相当简单且易于理解,但整个 Docker 网络的复杂性使得调试变得更加困难。

有人可以分享他们针对 Docker 主机的工作 iptables 规则或至少指导我正确的方向吗?

我使用 docker-compose 来启动服务,这是我的 yaml:

version: '3.7'

services:
  mysql:
    container_name: 'mysql'
    image: mysql:8.0.13
    command: --default-authentication-plugin=mysql_native_password
    user: 1000:1000
    ports:
      - "3306:3306"
    volumes:
      - ./data:/var/lib/mysql
      - ./config/custom.cnf:/etc/mysql/conf.d/custom.cnf
    networks:
      - database
    restart: always

networks:
  database:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

编辑: 我发现允许 Docker 管理 iptables 规则是推荐的并且要求不高,至少从长远来看是可以的,即使我没有以我喜欢的方式打开所需的端口,它仍然可以有效的。此时我想要的是找出是否可以使用 iptables 来阻止 Docker 打开的端口以及如何(通过 mangle 预路由?)。有什么建议?万分感谢!

linux iptables linux-networking docker docker-compose

6
推荐指数
1
解决办法
1万
查看次数

无法创建嵌套的网络命名空间

似乎无法从网络名称空间创建网络名称空间。它导致“错误:对等网络引用无效。”。

这是一个错误还是有某种我不知道的限制?

以下是我对错误的 cmd 跟踪。

# ip netns add foo1
# ip netns exec foo1 ip netns add foo2
# ip netns
Error: Peer netns reference is invalid.
Error: Peer netns reference is invalid.
foo2
foo1
# ip netns exec foo2 /bin/bash
setting the network namespace "foo2" failed: Invalid argument

Run Code Online (Sandbox Code Playgroud)

linux ip namespaces linux-networking network-namespace

6
推荐指数
1
解决办法
3513
查看次数

是否可以仅使用 shell 侦听 TCP 端口,而无需其他工具?

我需要一个带有 MISP 处理器的非常小的嵌入式系统上的非常简单的 Web 服务器。我认为最简单的服务器可能是一个监听 TCP 端口的 shell 脚本。

问题是系统甚至没有perl。只有一些基本的外壳/bin/sh。我在网上搜索了“如何从 shell 侦听端口”,但我发现的答案都提到了其他一些工具,例如nc,我没有。

甚至有可能做到吗?

系统,它是一个路由器,安装了 busybox 和/bin目录中的其他一些二进制文件,它们是:

#ls /bin
chown        df           fatattr      gzip         login        mount
ping         rm           shuf         touch        usleep
busybox      comgt        dmesg        fgrep        hostname     ls
mv           ping6        rmdir        sleep        true         vi
busybox-new  cp           echo         flock        ip           mkdir
netstat      printf       sdparm       split        umount       watch
cat          date         egrep        grep         kill         mknod
nice         ps           sed          sync         uname        wget
chmod        dd           false        gunzip       ln           more
pidof        pwd          sh …
Run Code Online (Sandbox Code Playgroud)

networking shell tcp linux-networking shell-scripting

6
推荐指数
1
解决办法
678
查看次数

Linux 如何在进程间分配带宽?

如果我不设置任何流量整形,Linux 如何在进程之间分配(传出)带宽?

我的具体情况是我在一个云 VM 上运行 30 个相同的进程,每个进程基本上都尽可能快地通过网络 (TCP) 发送数据。它们一起似乎达到了我期望的总输出带宽。然而,有些进程比其他进程完成得更快,并且消耗更多的带宽(高达 3 倍)。快速进程完成后,其余进程会加快速度并使用更多带宽。

Linux 如何决定每个进程应该获得多少带宽?

linux tcp linux-networking

6
推荐指数
1
解决办法
375
查看次数