http://blog.sina.com.cn/s/blog_6a1837e90100v9ye.html
一、使用iptables命令;
URL:
http://www./post/340/
二、修改Netfilter的limit模块;
URL:
http://blog.csdn.net/dog250/article/details/6940578
三、iptables的五个HOOK点;
四、使用libpcap:需移植,暂未深入研究;
五、修改内核:暂无方案;
附:http://whyxx.blog.51cto.com/2227948/560914
--------------------------------------------------------------------------------------------------
一、使用iptables命令:
相信不少朋友都知道,使用Linux搭建路由网关,提供nat上网服务是非常简单的事情,而且性能也不错。但现在p2p的工具很多,有时候带宽会被这些工具在无意中就占满了(例如:使用迅雷、BT下载等)。这时候,总希望看看到底是谁在占用带宽。这样的工具有很多,如ntop、bandwidthd、iftop、IPTraf、MRTG等等,它们也提供了非常方便的图形监控界面,操作也非常简单。可惜,它们都有一些缺点,像实时性不够、IP流量分散、需要使用Web来查看等,恰好这些就是好我需要的。
为此,我利用iptables的统计功能,编写了一个小脚本来实现要求。(原想用Perl的Net::Pcap模块的对数据包解码统计的,但既然有现成的,为什么不用呢?)O(∩_∩)O哈哈~
一、查看网卡流量
首先,可能我们需要查看的是服务器上总的网卡流量。这个Linux提供了很好的数据:
引用
# cat /proc/net/dev
Inter-|
Receive | Transmit
face
|bytes packets
errs drop fifo frame compressed
multicast|bytes packets
errs drop fifo colls carrier compressed
lo:10020933
79976 0 0 0
0 0
0 10020933
79976 0 0 0
0
0 0
eth0:3274190272 226746109
438150 858758
369237
0 0
0 2496830239
218418052 0 0 0
0
0 0
sit0:
0
0 0 0 0
0 0
0 |