Pages

Thursday, 5 April 2012

通过限制连接数控制P2P软件


跟几个人共用一台Linux主机连上外网,开启pptpd服务,我们用内网账号连接到VPN服务器,打开NAT转发就可以翻墙了。

比较郁闷的是,有个小伙儿比较喜欢用QVOD在线看视频或者迅雷下东西,其实学校有IPV6,用IPV6下BT挺快的,习惯问题,没法让他改。之前试过比较暴力的方法,网速太卡的时候直接用iptables给他丢包,具体为:

iptables -A FORWARD -s 192.168.0.5 -m limit --limit 150/s -j ACCEPT
iptables -A FORWARD -d 192.168.0.5 -m limit --limit 75/s -j ACCEPT
iptables -A FORWARD -s 192.168.0.5 -j DROP
iptables -A FORWARD -d 192.168.0.5 -j DROP

,根据包来限速,不过不怎么准的,因为包并不是固定大小。后来也觉得都是同学,还是找个比较温和的限速方式比较好,就去研究了一下tc,翻了两天文档,最后觉得太复杂,因为我主要就是想限制一下P2P,大家正常的应用还是不要影响到,tc下面如果根据服务划分队列的话,比较容易影响到其他服务,再说我们总共就四五个人用,人多的时候用tc对带宽进行整形控制比较好。还不够麻烦的。

后来想了个办法,限制每个ip的连接数应该可以达到控制P2P的目的,也不会影响正常的使用。

iptables -A FORWARD -s 192.168.0.5 -m connlimit --connlimit-above 150 -j REJECT

网上看到帖子是用 iplimit,会报错:
Couldn’t load match `iplimit’:/lib/xtables/libipt_iplimit.so: cannot open shared object file: No such file or directory
是因为iptables后面的版本用connlimit替代了iplimit

No comments:

Post a Comment