其实PPP的配置文件里有一个限速的配置项,但该配置项在Linux系统下不起作用。因此只好从其它方向研究一下限速的办法了。本文在CentOS 6 64bit系统上测试成功。
假设已经安装好了pptpd,且pptpd的子网段是172.16.36.0/24。
1,准备工作
yum install /sbin/tcvim /etc/sysctl.conf修改net.ipv4.ip_forward = 1sysctl -p#加载sch_htb模块modprobe sch_htbecho "modprobe sch_htb" >> /etc/rc.local
2,限速设置
vim /etc/ppp/ip-up
在最后一行的exit 0上面,添加如下内容
down=80kbpsupload=80kbpsiprange=172.16.36.0/24#down/sbin/tc qdisc del dev $1 root/sbin/tc qdisc add dev $1 root handle 2:0 htb/sbin/tc class add dev $1 parent 2:1 classid 2:10 htb rate $down/sbin/tc class add dev $1 parent 2:2 classid 2:11 htb rate 1024kbps/sbin/tc qdisc add dev $1 parent 2:10 handle 1: sfq perturb 1/sbin/tc filter add dev $1 protocol ip parent 2:0 u32 match ip dst \ $iprange flowid 2:10#upload/sbin/tc qdisc add dev $1 handle ffff: ingress/sbin/tc filter add dev $1 parent ffff: protocol ip u32 match ip dst \ $iprange police rate $upload burst 100k drop flowid 2:11
注意:1,这里的80kbps实际上就是80KB/S;2,$1是指传递过来的设备名,例如ppp0等。
然后可以重启一下服务,再从客户端重新连接一下,速度限制才会生效。
/etc/init.d/pptpd restart
参考文章:centos pptp+l2tp+radius+mysql+tc限速,安装配置
原文地址:CentOS下给pptp限速, 感谢原作者分享。 抱最大的希望,为最大的努力,做最坏的打算