SimpleDao
linux查看网络流量的方法
2020-05-10, 访问数: 2091

各个命令查看网络流量的侧重点

  • 查看总体流量:dstatsar
  • 查看各个网卡流量:ifstat
  • 查看各个进程使用的流量:nethogs
  • 查看连接的各个IP使用的流量:iftop

各个命令都可以使用-h查看参数,或者使用man命令查看详细说明,例如:man dstat

dstat

一秒显示一行总的网络流量

使用方法:

  1. [root@vm ~]# dstat
  2. You did not select any stats, using -cdngy by default.
  3. ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
  4. usr sys idl wai hiq siq| read writ| recv send| in out | int csw
  5. 1 0 98 0 0 0| 16k 17k| 0 0 | 29B 51B| 58 1140
  6. 1 0 99 0 0 0| 0 0 | 252B 1036B| 0 0 | 992 1168
  7. 4 0 96 0 0 0| 0 0 |2030B 6201B| 0 0 | 894 1116
  8. 2 1 95 2 0 0|4096B 48k|2255B 18k| 0 0 | 844 1122
  9. 10 1 76 13 0 0|3020k 0 | 10k 11k| 0 0 | 907 1124
  10. 3 0 96 1 0 0| 0 188k|2396B 20k| 0 0 |1095 1279

cpu:hiq、siq分别为硬中断和软中断次数。
system:int、csw分别为系统的中断次数(interrupt)和上下文切换(context switch)。
net: recv send 为接收和发送的字节数

sar

查看总的网络包和网络流量的信息

  1. [root@simpledao ~]# sar -n DEV 1 5
  2. Linux 3.10.0-693.2.2.el7.x86_64 (simpledao) 05/10/2020 _x86_64_ (1 CPU)
  3. 10:10:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
  4. 10:10:02 AM eth0 1.02 1.02 0.07 0.12 0.00 0.00 0.00
  5. 10:10:02 AM lo 3.06 3.06 0.19 0.19 0.00 0.00 0.00

ifstat

查看各个网卡的流量

  1. [root@simpledao ~]# ifstat
  2. #kernel
  3. Interface RX Pkts/Rate TX Pkts/Rate RX Data/Rate TX Data/Rate
  4. RX Errs/Drop TX Errs/Drop RX Over/Rate TX Coll/Rate
  5. lo 0 0 0 0 0 0 0 0
  6. 0 0 0 0 0 0 0 0
  7. eth0 11 0 8 0 1185 0 4598 0
  8. 0 0 0 0 0 0 0 0

nethogs

进程来查看网络流量

  1. NetHogs version 0.8.5
  2. PID USER PROGRAM DEV SENT RECEIVED
  3. 12021 lscy uwsgi eth0 0.227 0.920 KB/sec
  4. ? root 172.26.51.210:443-192.95.36.185:51519 0.871 0.435 KB/sec
  5. 27917 root /usr/local/cloudmonitor/jre/bin/java eth0 1.277 0.149 KB/sec
  6. 19341 root sshd: root@pts/0 eth0 0.281 0.064 KB/sec
  7. 24610 root ..sr/local/aegis/aegis_client/aegis_10 eth0 0.000 0.000 KB/sec
  8. ? root unknown TCP 0.000 0.000 KB/sec
  9. TOTAL 2.656 1.568 KB/sec

iftop

查看IP的流量, 监控TCP/IP连接,可以从界面上看出,哪些ip占用了比较大的流量

  1. iftop
  1. simpledao => 113.87.13.40 3.41Kb 7.85Kb 6.16Kb
  2. <= 208b 701b 390b
  3. simpledao => 103.141.75.118.adsl-pool.sx.cn 1.39Kb 3.14Kb 805b
  4. <= 208b 1.18Kb 303b
  5. simpledao => 101.226.212.27 160b 808b 226b
  6. <= 1.07Kb 3.53Kb 931b
  7. TX: cum: 114KB peak: 50.1Kb rates: 4.96Kb 13.6Kb 15.1Kb
  8. RX: 57.1KB 30.3Kb 1.47Kb 5.94Kb 7.86Kb
  9. TOTAL: 171KB 79.0Kb 6.43Kb 19.5Kb 23.0Kb
  10. 中间部分:外部连接列表,即记录了哪些ip正在和本机的网络连接
  11. 中间部分右边:实时参数分别是该访问ip连接到本机2秒,10秒和40秒的平均流量
  12. =>代表发送数据,<= 代表接收数据
  13. 底部三行:表示发送,接收和全部的流量
  14. 底部三行第二列:为你运行iftop到目前流量
  15. 底部三行第三列:为高峰值
  16. 底部三行第四列:为平均值

操作

  1. h切换是否显示帮助;
  2. n切换显示本机的IP或主机名;
  3. s切换是否显示本机的host信息;
  4. d切换是否显示远端目标主机的host信息;
  5. t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
  6. N切换显示端口号或端口服务名称;
  7. S切换是否显示本机的端口信息;
  8. D切换是否显示远端目标主机的端口信息;
  9. p切换是否显示端口信息;
  10. P切换暂停/继续显示;
  11. b切换是否显示平均流量图形条;
  12. B切换计算2秒或10秒或40秒内的平均流量;
  13. T切换是否显示每个连接的总流量;
  14. l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
  15. L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
  16. j或按k可以向上或向下滚动屏幕显示的连接记录;
  17. 123可以根据右侧显示的三列流量数据进行排序;
  18. 按<根据左边的本机名或IP排序;
  19. 按>根据远端目标主机的主机名或IP排序;
  20. o切换是否固定只显示当前的连接;
  21. f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
  22. 按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
  23. q退出监控。