Linux下利用TC命令对PAC代理进行限速,限制某进程端口速度
Linux下利用TC命令,对PAC代理进行限速,限制某个进程端口的吞吐速度,预留给其他使用
不少中小服务器接入带宽往往只有100Mbps 通常服务器也运行了其它服务,比如web server服务,当PAC代理用户访问量较大并且有多人同时下载时,带宽很容易耗尽,导致服务器延迟增加或丢包。如何对25端口的PAC代理进行速度限制,而保障其它服务能正常运行?
下面教程是限制为5Mbps,也就是640KB/S
/sbin/tc qdisc add dev eth0 root handle 1: htb
/sbin/tc class add dev eth0 parent 1: classid 1:5 htb rate 640kbps ceil 640kbps
/sbin/tc filter add dev eth0 parent 1:0 protocol ip handle 5 fw flowid 1:5
/sbin/iptables -A OUTPUT -t mangle -p tcp --sport 25 -j MARK --set-mark 5
service iptables save
可以把以上命令写成脚本文件,最后一条保存不需要,放在/home/pac.sh文件中
然后运行crontab -e
然后设置 * /home/pac.sh
假设要对eth0的网卡总体出去流限速为10Mbps的速度,可执行如下命令burst 设置15k,通常10Mbps至少需要10k的缓冲区,否则可能导致丢包。
/sbin/tc qdisc add dev eth0 root handle 1: htb default 1
/sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit burst 15k
要列出当前规则,请输入
tc -s qdisc ls dev eth0
想删除全部规则,请输入
tc qdisc del dev eth0 root