CentOS下给pptp限速

假设已经安装好了pptpd,且pptpd的子网段是172.16.36.0/24。

1,准备工作

yum install /sbin/tc
 
vim /etc/sysctl.conf
修改net.ipv4.ip_forward = 1
sysctl -p
 
#加载sch_htb模块
modprobe sch_htb
echo "modprobe sch_htb" >> /etc/rc.local

2,限速设置

vim /etc/ppp/ip-up

在最后一行的exit 0上面,添加如下内容

down=80kbps
upload=80kbps
iprange=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限速,安装配置

发表评论

滚动至顶部