LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: float

有没有这个的程序?[关于网络流量统计]

[复制链接]
发表于 2004-1-10 01:34:43 | 显示全部楼层
最初由 lanb 发表
tcpdump很强大的说!

lanb说得没错,,,可惜很少有人去挖掘他的潜力!
发表于 2004-1-10 10:53:34 | 显示全部楼层
其实tcpdump可以用来做很多事情地!如果你相crack,这个也可以,想监视,也可以....
发表于 2004-1-10 11:08:05 | 显示全部楼层
C很强大,连操作系统都可以写,但是在企业大型应用中为什么现在java越来越热,不是C写不出来相反的是C写出来的程序执行效率更高,但是C并不合适,因为java跨平台性和开发周期短,开发难度低。
tcpdump是用来分析一定时间(短时间,一般不超过几天)网络流量的组成,一般用来排除网络故障、也可用来嗅探,但用来统计网络流量无论从性能和简便性来说都很勉强。
linux内核本身就支持网络流量统计,通过iptables可以轻松完成从网段->IP->端口各种形式的流量统计,完全可以满足楼主的需求。
发表于 2004-1-10 11:18:13 | 显示全部楼层
请楼上的SHOW一下。。。
发表于 2004-1-10 11:59:30 | 显示全部楼层

  1. pop:~# iptables -L r0 -v -n
  2. Chain r0 (1 references)
  3. pkts bytes target     prot opt in     out     source               destination         
  4. 13662  601K DROP       all  --  *      *       61.153.3.7           0.0.0.0/0         
  5.   146  7564 DROP       all  --  *      *       61.50.176.0/20       0.0.0.0/0         
  6.   190  9120 DROP       all  --  *      *       61.62.80.0/20        0.0.0.0/0         
  7.   716 34804 DROP       all  --  *      *       61.141.224.0/20      0.0.0.0/0         
  8.    81  4368 DROP       all  --  *      *       61.177.32.0/20       0.0.0.0/0         
  9.   822 40484 DROP       all  --  *      *       202.107.192.0/20     0.0.0.0/0         
  10. 2887  150K DROP       all  --  *      *       210.51.0.0/16        0.0.0.0/0         
  11. 1897 91152 DROP       all  --  *      *       211.97.176.0/20      0.0.0.0/0         
  12. 3237  155K DROP       all  --  *      *       218.61.0.0/16        0.0.0.0/0         
  13.   246 11832 DROP       all  --  *      *       218.5.160.0/20       0.0.0.0/0         
  14. 12954  637K DROP       all  --  *      *       218.17.0.0/16        0.0.0.0/0         
  15. 22044 1105K DROP       all  --  *      *       218.18.0.0/16        0.0.0.0/0         
  16. 4658  232K DROP       all  --  *      *       218.20.0.0/16        0.0.0.0/0         
  17.    98  4800 DROP       all  --  *      *       218.58.96.0/20       0.0.0.0/0         
  18.   265 13712 DROP       all  --  *      *       218.79.224.0/20      0.0.0.0/0         
  19. 1838 90812 DROP       all  --  *      *       218.80.0.0/16        0.0.0.0/0         
  20.   130  6240 DROP       all  --  *      *       218.246.224.0/20     0.0.0.0/0         
  21.     6   384 DROP       all  --  *      *       218.6.0.0/20         0.0.0.0/0         
  22.   439 21072 DROP       all  --  *      *       219.137.64.0/20      0.0.0.0/0         
  23. 1369 65920 DROP       all  --  *      *       219.233.0.0/16       0.0.0.0/0         
  24. 3948  192K DROP       all  --  *      *       219.237.0.0/16       0.0.0.0/0         
  25.   563 27168 DROP       all  --  *      *       220.113.160.0/20     0.0.0.0/0         
  26.   264 12672 DROP       all  --  *      *       221.10.208.0/20      0.0.0.0/0
复制代码

这是一些网段的drop,只要改为accept就能实现流量的统计。至于统计ip还是端口的流量大家就自由发挥了,写个几百条总能满足需要的。然后结合脚本进行界面更改,简化操作就比较完善了。

  1. [root@gateway root]# showquota
  2. error: time parameter error!
  3. example: showquota {number}
  4. [root@gateway root]# showquota 1
  5. wxy     quota: 573079855 bytes
  6. zc      quota: 570164706 bytes
  7. yj      quota: 566660319 bytes
  8. wh      quota: 464174942 bytes
  9. yh      quota: 497620615 bytes
  10. dhf     quota: 582565272 bytes
  11. zxl     quota: 591052139 bytes
  12. lhf     quota: 541141789 bytes
  13. xmj     quota: 572473650 bytes
  14. yz      quota: 584613165 bytes
  15. sh      quota: 583436152 bytes
  16. tk      quota: 587226497 bytes
  17. lz      quota: 0 bytes
  18. djr     quota: 599981001 bytes
  19. fmd     quota: 588132717 bytes
  20. tyl     quota: 595405020 bytes
  21. ws      quota: 105356325 bytes
  22. zqy     quota: 567967421 bytes
  23. fw      quota: 600000000 bytes
  24. shl     quota: 596977562 bytes
  25. 192.168.17.0/24   


  26. Please press ^c quit....
复制代码

这里的quota功能是较新版的iptables所带有的,界面经过我略微加工了一下。showquota:

  1. [root@gateway root]# cat /usr/sbin/showquota
  2. #!/bin/bash
  3. if [ $# != "1" ];then
  4.         echo "error: time parameter error!";
  5.         echo "example: showquota {number}";
  6.         exit;
  7. fi
  8. while true;do
  9.         clear
  10.         iptables  -L QUOTA | awk '{ print $5"\t"$6" "$7" "$8}' | sed -e '1,2d'
  11.         echo ""
  12.         echo ""
  13.         echo -n "Please press ^c quit...."
  14.         sleep $1
  15. done
  16. [root@gateway root]# cat monitor
  17. #!/bin/bash
  18. if [ $# != "1" ];then
  19.         echo "error: time parameter error!";
  20.         echo "example: monitor {number}";
  21.         exit;
  22. fi
  23. iptables -Z FORWARD
  24. while true;do
  25.         clear
  26.         iptables -L FORWARD -v | sed -e '1d' | awk '{print $1"\t"$2"\t"$8"\t\t"$9}'
  27.         echo ""
  28.         echo ""
  29.         echo -n "Please press ^c quit...."
  30.         iptables -Z FORWARD
  31.         sleep $1
  32. done
复制代码

monitor是我为了方便监视每个客户端流量而写的,每个ip在hosts文件中都有对应的名字。写得都很简单,如果大家有兴趣可以完善一下。
发表于 2004-1-10 12:29:09 | 显示全部楼层
精彩~~~ :thank
发表于 2004-1-11 18:28:27 | 显示全部楼层
呵呵,iptables那参数没见过,,很多文章也没提到?奇怪

不错,,
发表于 2005-3-2 16:59:37 | 显示全部楼层
是哪个版本的iptables哦?我的没有quota的
回复 支持 反对

使用道具 举报

发表于 2005-4-28 17:02:24 | 显示全部楼层
为可不用iptraf呢?
回复 支持 反对

使用道具 举报

发表于 2005-4-28 17:02:28 | 显示全部楼层
为可不用iptraf呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表