各个命令查看网络流量的侧重点
- 查看总体流量:
dstat
,sar
- 查看各个网卡流量:
ifstat
- 查看各个进程使用的流量:
nethogs
- 查看连接的各个IP使用的流量:
iftop
各个命令都可以使用-h
查看参数,或者使用man
命令查看详细说明,例如:man dstat
dstat
一秒显示一行总的网络流量
使用方法:
[root@vm ~]# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
1 0 98 0 0 0| 16k 17k| 0 0 | 29B 51B| 58 1140
1 0 99 0 0 0| 0 0 | 252B 1036B| 0 0 | 992 1168
4 0 96 0 0 0| 0 0 |2030B 6201B| 0 0 | 894 1116
2 1 95 2 0 0|4096B 48k|2255B 18k| 0 0 | 844 1122
10 1 76 13 0 0|3020k 0 | 10k 11k| 0 0 | 907 1124
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
查看总的网络包和网络流量的信息
[root@simpledao ~]# sar -n DEV 1 5
Linux 3.10.0-693.2.2.el7.x86_64 (simpledao) 05/10/2020 _x86_64_ (1 CPU)
10:10:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:10:02 AM eth0 1.02 1.02 0.07 0.12 0.00 0.00 0.00
10:10:02 AM lo 3.06 3.06 0.19 0.19 0.00 0.00 0.00
ifstat
查看各个网卡的流量
[root@simpledao ~]# ifstat
#kernel
Interface RX Pkts/Rate TX Pkts/Rate RX Data/Rate TX Data/Rate
RX Errs/Drop TX Errs/Drop RX Over/Rate TX Coll/Rate
lo 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
eth0 11 0 8 0 1185 0 4598 0
0 0 0 0 0 0 0 0
nethogs
按进程来查看网络流量
NetHogs version 0.8.5
PID USER PROGRAM DEV SENT RECEIVED
12021 lscy uwsgi eth0 0.227 0.920 KB/sec
? root 172.26.51.210:443-192.95.36.185:51519 0.871 0.435 KB/sec
27917 root /usr/local/cloudmonitor/jre/bin/java eth0 1.277 0.149 KB/sec
19341 root sshd: root@pts/0 eth0 0.281 0.064 KB/sec
24610 root ..sr/local/aegis/aegis_client/aegis_10 eth0 0.000 0.000 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 2.656 1.568 KB/sec
iftop
查看IP的流量, 监控TCP/IP连接,可以从界面上看出,哪些ip占用了比较大的流量
iftop
simpledao => 113.87.13.40 3.41Kb 7.85Kb 6.16Kb
<= 208b 701b 390b
simpledao => 103.141.75.118.adsl-pool.sx.cn 1.39Kb 3.14Kb 805b
<= 208b 1.18Kb 303b
simpledao => 101.226.212.27 160b 808b 226b
<= 1.07Kb 3.53Kb 931b
TX: cum: 114KB peak: 50.1Kb rates: 4.96Kb 13.6Kb 15.1Kb
RX: 57.1KB 30.3Kb 1.47Kb 5.94Kb 7.86Kb
TOTAL: 171KB 79.0Kb 6.43Kb 19.5Kb 23.0Kb
中间部分:外部连接列表,即记录了哪些ip正在和本机的网络连接
中间部分右边:实时参数分别是该访问ip连接到本机2秒,10秒和40秒的平均流量
=>代表发送数据,<= 代表接收数据
底部三行:表示发送,接收和全部的流量
底部三行第二列:为你运行iftop到目前流量
底部三行第三列:为高峰值
底部三行第四列:为平均值
操作
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。