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

标签:上网技巧, 代理

你的评论