为什么我不能用 tc 命令限制带宽

为什么我不能用 tc 命令限制带宽

我想限制接口 eth1 的带宽,我读取命令此链接

sudo tc qdisc add dev eth1 root handle 1:0 htb default 10
sudo tc class add dev eth1 parent 1:0 classid 1:10 htb rate 200kbps ceil 200kbps

运行良好(下载速度 ~ 200 kb/s)。当我添加 1 条命令时,我认为下载速度将达到 ~ 170 kb/s,但事实并非如此(下载速度 ~ 500 kb/s)。

sudo tc qdisc add dev eth1 root handle 1:0 htb default 10
sudo tc class add dev eth1 parent 1:0 classid 1:10 htb rate 200kbps ceil 200kbps
sudo tc class add dev eth1 parent 1:10 classid 1:100 htb rate 170kbps ceil 170kbps

有人能帮帮我吗?非常感谢!

答案1

您指定了两个类别/速度。这是您想要的吗?您没有解释为什么要设置这些值。您需要 iptables 规则来配合这些规则,但您没有提及这些。

http://www.cyberciti.biz/faq/linux-traffic-shaping-using-tc-to-control-http-traffic/

定义一个具有限制的类,即将端口 80 的允许带宽设置为 512 千字节,突发带宽设置为 640 千字节:

# /sbin/tc class add dev eth1 parent 1:0 classid 1:10 htb rate 512kbps ceil 640kbps prio 0

请注意,端口 80 未在上述类的任何地方定义。您将使用 iptables mangle 规则,如下所示:

# /sbin/iptables -A OUTPUT -t mangle -p tcp --sport 80 -j MARK --set-mark 10

相关内容