Linux下统计局域网流量

发表于:2017-2-15 09:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:苏文鹏    来源:51Testing软件测试网采编

  Linux下统计局域网流量
  1:统计10.86.0.0/16网段的内网流量情况
  将下面脚本保存成文件traffic-lan.sh(运行后需要等待10秒抓包)
  tcpdump -nqt src net 10.86.0.0/16 and dst net ! 10.86.0.0/16 \
  > /tmp/tcpdump_temp 2>&1 &
  sleep 10
  kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`
  #awk '{s[$2] += $6}END{ for(i in s){  print i, s[i] } }' /tmp/tcpdump_temp
  cat /tmp/tcpdump_temp|grep 'IP ' \
  |awk -F'[. ]' '{s[$2"."$3"."$4"."$5]+=$14}END{for(i in s){print i"\t"s[i]}}' \
  |sort -n -r -k 2
  2:统计到外网IP的流量情况
  将下面脚本保存成文件traffic-wan.sh(运行后需要等待10秒抓包)
  tcpdump -nqt src net 10.86.0.0/16 and dst net ! 10.86.0.0/16 \
  > /tmp/tcpdump_temp 2>&1 &
  sleep 10
  kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`
  #awk '{s[$2] += $6}END{ for(i in s){  print i, s[i] } }' /tmp/tcpdump_temp
  cat /tmp/tcpdump_temp|grep 'IP ' \
  |awk -F'[. ]' '{s[$8"."$9"."$10"."$11]+=$14}END{for(i in s){if(s[i]>0)print i"\t"s[i] fi}}' \
  |sort -n -r -k 2
  3:可以统计UDP的改进版本
  tcpdump -i ens3 -nqt src net 10.86.0.0/16 and dst net ! 10.86.0.0/16\
  |sed 's/.[0-9]\+\s>//g'|sed 's/.[0-9]\+://g'\
  |sed 's/, length//g'\
  > /tmp/tcpdump_temp 2>&1 &
  sleep 5
  kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`
  cat /tmp/tcpdump_temp\
  |awk '{s[$3]+=$5}END{for(i in s){if(s[i]>0)print i"\t"s[i] fi}}'\
  |sort -n -r -k 2
  echo "finish."
  4:后来发现iftop也可以完成类似功能
  iftop -o destination -t -s 1 -L 10
  5:找出发出流量最大的
  iftop -nNP -o destination -t -s 3 -L 1
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号