CentOS怎样设置限速?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS怎样设置限速?相关的知识,希望对你有一定的参考价值。

CentOS做的代理服务器要对客户机进行限速设置,有没有现成的脚本?

参考技术A 用tc可以限速
DOWNLOAD=800Kbit
UPLOAD=160Kbit
INET=192.168.0.
IPS=1
IPE=253
ServerIP=254
IDEV=eth0
ODEV=ppp0
/sbin/tc qdisc del dev $IDEV root handle 10:
/sbin/tc qdisc del dev $ODEV root handle 20:
/sbin/tc qdisc add dev $IDEV root handle 10: cbq bandwidth 100Mbit avpkt 1000
/sbin/tc qdisc add dev $ODEV root handle 20: cbq bandwidth 1Mbit avpkt 1000
/sbin/tc class add dev $IDEV parent 10:0 classid 10:1 cbq bandwidth 100Mbit rate 100Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
/sbin/tc class add dev $ODEV parent 20:0 classid 20:1 cbq bandwidth 1Mbit rate 1Mbit allot 1514 weight 10Kbit prio 8 maxburst 20 avpkt 1000
/sbin/tc class add dev $IDEV parent 10:1 classid 10:10 cbq bandwidth 100Mbit rate 95Mbit allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded
/sbin/tc qdisc add dev $IDEV parent 10:10 sfq quantum 1514b perturb 15
/sbin/tc filter add dev $IDEV parent 10:0 protocol ip prio 50 u32 match ip src $INET$ServerIP flowid 10:10
COUNTER=$IPS
while [ $COUNTER -le $IPE ]
do
/sbin/tc class add dev $IDEV parent 10:1 classid 10:1$COUNTER cbq bandwidth 100Mbit rate $DOWNLOAD allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded
/sbin/tc qdisc add dev $IDEV parent 10:1$COUNTER sfq quantum 1514b perturb 15
/sbin/tc filter add dev $IDEV parent 10:0 protocol ip prio 100 u32 match ip dst $INET$COUNTER flowid 10:1$COUNTER
COUNTER=` expr $COUNTER + 1 `
done
COUNTER=$IPS
while [ $COUNTER -le $IPE ]
do
/sbin/tc class add dev $ODEV parent 20:1 classid 20:1$COUNTER cbq bandwidth 1Mbit rate $UPLOAD allot 1514 weight 4Kbit prio 5 maxburst 20 avpkt 1000 bounded
/sbin/tc qdisc add dev $ODEV parent 20:1$COUNTER sfq quantum 1514b perturb 15
/sbin/tc filter add dev $ODEV parent 20:0 protocol ip prio 100 handle $COUNTER fw classid 20:1$COUNTER
COUNTER=` expr $COUNTER + 1 `
done
NIP=78
ND=200Kbit
NU=50Kbit
/sbin/tc class change dev $IDEV parent 10:1 classid 10:1$NIP bandwidth 100Mbit rate $ND allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded
/sbin/tc class change dev $ODEV parent 20:1 classid 20:1$NIP cbq bandwidth 1Mbit rate $NU allot 1514 weight 4Kbit prio 5 maxburst 20 avpkt 1000 bounded
NIP=1
ND=1500Kbit
NU=500Kbit
/sbin/tc class change dev $IDEV parent 10:1 classid 10:1$NIP bandwidth 100Mbit rate $ND allot 1514 weight 20Kbit prio 5 maxburst 20 avpkt 1000 bounded
/sbin/tc class change dev $ODEV parent 20:1 classid 20:1$NIP cbq bandwidth 1Mbit rate $NU allot 1514 weight 4Kbit prio 5 maxburst 20 avpkt 1000 bounded
COUNTER=$IPS
while [ $COUNTER -lt $IPE ]
do
iptables -t mangle -A PREROUTING -i $IDEV -s $INET$COUNTER -j MARK --set-mark $COUNTER
COUNTER=` expr $COUNTER + 1 `
done
iptables -t nat -A POSTROUTING -o $EXTIF -s 192.168.0.0/24 -j MASQUERADE

centos tc 端口限速

#http://www.fx114.net/qa-178-108967.aspx
#http://professor.blog.51cto.com/996189/1569481/
#http://blog.csdn.net/x_i_y_u_e/article/details/43016053
#http://bbs.itzmx.com/forum.php?mod=viewthread&tid=10669&page=1
1.rate – 您可以设置允许的带宽。
2.ceil – 您可以设置的突发带宽时,允许桶。
3.prio – 您可以设置额外的带宽优先级。 prios较低的类所提供的带宽。例如,您可以给DNS流量和HTTP下载PRIO较低。
4.iptables和TC:你需要使用iptables和TC如下:控制出站HTTP流量。


####################测试可以正常限速########################################
#限制速度
#下面教程是限制为5Mbps,也就是640KB/S
#设置根
tc qdisc add dev em1 root handle 1: htb
#设置允许的速度为2M,突发最大流量为2M,优先级为1
tc class add dev em1 parent 1: classid 1:5 htb rate 1Mbps ceil 1Mbps prio 1
#设置防火墙id与规则id对应关系,id 1:5对应防火墙标记id为5
tc filter add dev em1 parent 1:0 protocol ip handle 5 fw flowid 1:5

#配置防火墙
#设置端口7500流量标记为5,应用流量限制规则到7500端口
/sbin/iptables -A OUTPUT -t mangle -p tcp --sport 7500 -j MARK --set-mark 5


#####################################常用命令
#清空规则
tc qdisc del dev em1 root
tc -s qdisc ls dev em1

#查看tc规则
tc qdisc ls dev em1
tc -s qdisc ls dev em1
tc class ls dev em1
tc -s class ls dev em1

#查看防火墙
iptables -t mangle -n -v -L

以上是关于CentOS怎样设置限速?的主要内容,如果未能解决你的问题,请参考以下文章

centos怎样设置ftp登录?

centos系统中安装vsftp,怎样设置系统的防火墙?

centos怎样将服务加入开机自动启动

centos7怎样让开机自动启动网络

centos 怎样修改 mysql 访问地址

CentOS 7 怎样安装 OwnCloud 7 私有云