公司拉了个10兆光纤 随着人员的增加 由原来的 一百来人增加到 二百来人 网络相当不给力,后来就学了下TC  感觉蛮爽的,但是问题又出现了 tc+htp 限制的速度非仓给力 多少就是多少,问题是 有时候比之前更加延迟,用工具iftop 查看网卡每个IP经过的流量都看不出来 有多大变化,领导来了几次都说网络速度慢,这下真的有点头冒冷汗了。

  为此,当ping 百度 出现500ms的时候 就连续封最大流量的ip地址 一个一个封 这样真的很头疼。有时候在终端看不出来就 得天天跑机房,瞅瞅 交换机灯。 谁闪的快就先拔掉谁,一个个测试。这样下来很累的。。

  偶然一次再帮技术部的帅哥装完系统之后用驱动精灵安装驱动,网络巨无霸的卡。。延迟瞬间达到1200ms, 我就开始怀疑驱动精灵,之后 暂停下载驱动 网络又恢复了正常,上网翻阅了好多资料 才知道p2p下载会对网络的抑制, 越大带宽的网络越明显。俺们领导要求俺在一个星期内搞定局域网内p2p下载。 冷汗啊~~


后来找到一些文章,关于限制p2p 下载的 我也活学活用顺手拈来试试

  首先准备 需要的包 

1.iptables-1.3.5.tar.bz2

2.ipp2p-0.99.15.tar.gz(过人改版的p2p 模块)

3.内核下载 (用unamr -r 查看自己的内核。一般情况下是存在/usr/src/kernels/ 存在就不用下载了)

tar -jxvf iptables-1.3.5.tar.bz2 -C /opt

mv iptables-1.3.5    iptables

tar -zxvf 2.6.18-274.18.1.el5-x86_64.tar.gz /usr/src/kernels/

tar -zxvf ipp2p-0.99.15.tar.gz -C /opt

cd /opt/

编辑Makefile

vi MakeFile

找到 

#KERNEL_SRC = /usr/src/kernels/2.6.18-274.18.1.el5-x86_64

KERNEL_SRC ?= $(firstword $(wildcard /lib/modules/$(shell uname -r)/build /usr/src/linux))

“#KERNEL_SRC = /usr/src/kernels/2.6.18-274.18.1.el5-x86_64” 取消注释同时更改内核位置,即 刚刚解压的内核位置

把“KERNEL_SRC ?= $(firstword $(wildcard /lib/modules/$(shell uname -r)/build /usr/src/linux))”注释掉

找到

 

IPTABLES_SRC = $(wildcard /usr/src/iptables-$(IPTVER))

#IPTABLES_SRC = /opt/iptables/

 

IPTABLES_SRC = $(wildcard /usr/src/iptables-$(IPTVER)) 注释掉

#IPTABLES_SRC = /opt/iptables/去掉注释

OK  保存 

如果提示编译libipt_ipp2p.so有错误,请将Makefile中的

“$(CC) -shared -o libipt_ipp2p.so libipt_ipp2p.o”

修改为

“ld -shared -o libipt_ipp2p.so libipt_ipp2p.o”

(1.3.5版的iptables使用ld没问题;但是1.3.8版的使用ld就不行了,只能使用gcc)

 

将编译好的libipt_ipp2p.so复制到iptables的模块目录下,

通常为/lib/iptables,(32位系统,64位的应该放在/lib64/iptables );

将ipt_ipp2p.ko复制到内核的netfilter目录下(通常为/lib/modules/内核名称/kernel/net/ipv4/netfilter)

运行depmod -a,更新内核模块的依赖关系

 

测试 用iptables -I FORWARD -m ipp2p --help 最后几行有无样板命令