有时候我们希望快速地限制服务器指定网络接口的连接速率,这时候使用Wondershaper就是一个很好的选择。
首先,我们先查询期望限速的网络接口名称:
ip addr
这会打印出当前的所有网络接口,以下方的一台示例主机为例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether a4:2f:cc:00:00:2f brd ff:ff:ff:ff:ff:ff
altname enp0s17
inet 198.xxx.xx.xx/24 brd 198.xxx.xx.xx scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a62f:ccff:fe00:2f/64 scope link
valid_lft forever preferred_lft forever
9: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 4e:8d:19:d4:13:15 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
可以看到,这台示例主机有三个网络接口:
- lo:这是本地回环接口
- eth0:这是外网的网络接口
- docker0:这是docker对外的网络接口
现在,安装WonderShaper:
sudo apt update
sudo apt install wondershaper -y
然后,使用以下命令对指定接口进行限速:
sudo wondershaper <interface> <inbound> <outbound>
例如,对eth0
接口限速下行1Mbps,上行512Kbps:
sudo wondershaper eth0 1024 512
若要解除对指定接口的限速,使用:
sudo wondershaper clear <interface>
例如,清除eth0接口的限速:
sudo wondershaper clear eth0