http://blog.sina.com.cn/s/blog_6a1837e90100v9ye.html
一、使用iptables命令;
URL:http://www.linuxfly.org/post/340/
二、修改Netfilter的limit模塊;
URL:http://blog.csdn.net/dog250/article/details/6940578
三、iptables的五個(gè)HOOK點(diǎn);
四、使用libpcap:需移植,暫未深入研究;
五、修改內(nèi)核:暫無(wú)方案;
附:http://whyxx.blog.51cto.com/2227948/560914
--------------------------------------------------------------------------------------------------
一、使用iptables命令:
相信不少朋友都知道,使用Linux搭建路由網(wǎng)關(guān),提供nat上網(wǎng)服務(wù)是非常簡(jiǎn)單的事情,而且性能也不錯(cuò)。但現(xiàn)在p2p的工具很多,有時(shí)候帶寬會(huì)被這些工具在無(wú)意中就占滿了(例如:使用迅雷、BT下載等)。這時(shí)候,總希望看看到底是誰(shuí)在占用帶寬。這樣的工具有很多,如ntop、bandwidthd、iftop、IPTraf、MRTG等等,它們也提供了非常方便的圖形監(jiān)控界面,操作也非常簡(jiǎn)單。可惜,它們都有一些缺點(diǎn),像實(shí)時(shí)性不夠、IP流量分散、需要使用Web來(lái)查看等,恰好這些就是好我需要的。
為此,我利用iptables的統(tǒng)計(jì)功能,編寫了一個(gè)小腳本來(lái)實(shí)現(xiàn)要求。(原想用Perl的Net::Pcap模塊的對(duì)數(shù)據(jù)包解碼統(tǒng)計(jì)的,但既然有現(xiàn)成的,為什么不用呢?)O(∩_∩)O哈哈~
一、查看網(wǎng)卡流量
首先,可能我們需要查看的是服務(wù)器上總的網(wǎng)卡流量。這個(gè)Linux提供了很好的數(shù)據(jù):
引用
# cat /proc/net/dev
Inter-| Receive | Transmit
face|bytes packetserrs drop fifo frame compressedmulticast|bytes packetserrs drop fifo colls carrier compressed
lo:10020933 79976 0 0 0 0 0 0 10020933 79976 0 0 0 0 0 0
eth0:3274190272 226746109438150 858758369237 0 0 0 2496830239218418052 0 0 0 0 0 0
sit0: 0 0 0 0 0 0 0 0 0