1) 清理工作。
清理一下iptables Mangle规则。
iptables -t mangle -F
清理一下eth0上原有的队列类型。
tc qdisc del dev eth0 root
2)限制上行网速
1.给eth0添加一个根规则。PS : 这里的root非root账号的意思。
tc qdisc add dev eth0 root handle 1: htb default 1
2.创建根类。 100mbps 可以替换成你自己服务器的实际带宽。
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbps
3.创建支类限速。
tc class add dev eth0 parent 1:1 classid 1:5 htb rate 1500Kbit ceil 2048Kbit prio 1
rate 1500Kbit 代表最大带宽1536Kbit/s,改成你想要的带宽大小即可。
ceil 2048Kbit 代表突发带宽2048Kbit/s。
ceil >= rate
1:5 意思是每5秒钟检查一次。
4.创建过滤器。
tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 5 fw flowid 1:5
这里要注意的就是flowid 要和上一条的 classid对应起来。
3)借助iptables针对端口限速
如何限制多个端口?
iptables -A OUTPUT -p tcp -m multiport --sports 80,443 -j MARK --set-mark 5
如何限制10000-20000端口段?
iptables -A OUTPUT -p tcp -m tcp --sport 20001:29999 -j MARK --set-mark 5
iptables -A OUTPUT -p udp -m udp --sport 20001:29999 -j MARK --set-mark 5