我知道这是一个旧帖子,但即使今天我偶然发现它也要寻找答案,我最终拼凑了一些对我来说很完美的东西。我有一个25Mbs的下行链路和2.5Mbs的上行链路,并且有4个人和5个服务器共享此链接。对于服务器,上行链路带宽至关重要,但下行链路对4个人有用,因此没人能做到。
我将centos 6.3作为路由器运行,但这些命令应在任何linux上都可以使用。eth0是我到提供商的上行链路eth1是我通过24端口交换机和wifi接入点的局域网,我将下载限制为25 Mb中的5个(大约500KB /秒),我将上传限制为200Kbit(大约25KB /秒)
tc qdisc add dev eth0 root handle 1:0 htb default 99
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100Mbit ceil 100Mbit
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 200Kbit ceil 200Kbit prio 2
tc qdisc add dev eth0 parent 1:11 handle 10: sfq perturb 10
tc qdisc add dev eth1 root handle 2:0 htb default 99
tc class add dev eth1 parent 2:0 classid 2:1 htb rate 100Mbit ceil 100Mbit
tc class add dev eth1 parent 2:1 classid 2:11 htb rate 5Mbit ceil 5Mbit prio 2
tc qdisc add dev eth1 parent 2:11 handle 20: sfq perturb 10
然后限制用户,每个用户使用2条iptables行
限制上传:
iptables -t mangle -A POSTROUTING -o eth0 -p tcp -s 192.168.0.100 -j CLASSIFY --set-class 1:11
限制下载
iptables -t mangle -A POSTROUTING -o eth1 -p tcp -d 192.168.0.100 -j CLASSIFY --set-class 2:11
只需更改您的IP地址和eth端口以匹配您要限制的用户