我使用 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) 当我使用 打印在我的计算机上定义的路线时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,但据我所知,其他计算机上的路由以相同的方式工作。
我试图找出一种方法来检测连接到我服务器上端口 80 的每个 IP 的往返时间。有什么好的方法可以做到这一点?
有很多连接,ping每个ip是不切实际的。我在想,以某种方式测量服务器发送 syn/ack 数据包和服务器收到它的 ack 之间的时间差。
有没有办法便宜地记录这个?也许使用一些神奇的 tcpdump 过滤器?
此练习的目标是汇总数据并计算是否存在任何路由效率低下的情况。假设一个地区的一个 ISP 可能路由不正确,等等。
FWIW 网络服务器是 nginx。
有没有一种方法来命名一个VLAN接口任意像eth72或ext19代替四个标准nameing方案eth0.72,vlan19(和填补的变化)?
不要没有头绪。也许udev?
我可以打字
echo bbr > /proc/sys/net/ipv4/tcp_congestion_control
Run Code Online (Sandbox Code Playgroud)
更改在 IPv4 上运行的 TCP 连接的拥塞控制算法,但是对于那些通过 IPv6 到达的连接,我该如何做呢?
上面的命令是否为两者都设置了它?
我的服务器有一个文件 /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) 我有带 Docker 的 Ubuntu 服务器来为 MySQL 和 SSH/SFTP 提供服务,我需要对除3306和22之外的所有端口进行防火墙设置,这是非常标准和微不足道的要求,对吧?
现在,我设法找到了一种解决方案,但在应用它之后,它对我来说并不完全有效,要么:
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 预路由?)。有什么建议?万分感谢!
似乎无法从网络名称空间创建网络名称空间。它导致“错误:对等网络引用无效。”。
这是一个错误还是有某种我不知道的限制?
以下是我对错误的 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) 我需要一个带有 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) 如果我不设置任何流量整形,Linux 如何在进程之间分配(传出)带宽?
我的具体情况是我在一个云 VM 上运行 30 个相同的进程,每个进程基本上都尽可能快地通过网络 (TCP) 发送数据。它们一起似乎达到了我期望的总输出带宽。然而,有些进程比其他进程完成得更快,并且消耗更多的带宽(高达 3 倍)。快速进程完成后,其余进程会加快速度并使用更多带宽。
Linux 如何决定每个进程应该获得多少带宽?