成长值: 27
签到天数: 4634 天 [LV.Master]伴坛终老
|
发表于 2016/2/1 01:01
|
显示全部楼层
|阅读模式
|![](https://att.itzmx.com/source/plugin/chxs_icons/images/net/chrome.png) Google Chrome 47.0.2526.111 |![](https://att.itzmx.com/source/plugin/chxs_icons/images/os/win-5.png) Windows 10
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文件中
然后运行
然后设置- * * * * * /bin/bash /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
查看防火墙规则回显确保添加
cat /etc/sysconfig/iptables | grep sport
|
|