概述
Linux中有各种查看网络流量的工具,本文介绍一下sar、iftop、nethogs等工具使用
使用示例
sar 工具使用
sar从网络接口层面查看数据包的收发情况、示例如下
sar -n DEV [interval] [count]
#interval参数是统计间隔
#count参数是统计次数。
使用示例
sar -n DEV 2 3
字段解释
- IFACE:网络接口名称。
- rxpck/s、txpck/s:每秒收或发的数据包数量。
- rxkB/s、txkB/s:每秒收或发的字节数,以kB/s为单位。
- rxcmp/s、txcmp/s:每秒收或发的压缩过的数据包数量。
- rxmcst/s:每秒收到的多播数据包。
iftop 工具使用
iftop 可以 -i指定网卡查看指定接口网络情况,如果不指定,默认检测第一块网卡 使用示例
iftop -i eth0
如果要查看流量较高的进程,可以加-P 找到端口 再使用netstat
iftop -i eth0 -P
#如下图打印出端口使用netstat 过滤对应端口查找进程
netstat -antup | grep port
主要字段介绍 iftop的流量显示单位是Mb,这里的b是比特(bit),不是字节(byte)
- 第一行:带宽使用情况显示。
- 中间部分为外部连接列表,即记录了哪些IP正在和本机的网络连接。
- 中间部分靠右侧部分是实时流量信息,分别是该访问IP连接到本机2秒、10 秒和40秒的平均流量。
=>
代表发送数据,<=
代表接收数据。- 底部三行。
- 第一列:TX表示发送流量,RX表示接收流量,TOTAL表示总流量。
- 第二列cum:表示第一列各种情况的总流量。
- 第三列peak:表示第一列各种情况的流量峰值。
- 第四列rates:表示第一列各种情况2秒、10秒、40秒内的平均流量。
nethogs工具使用
如果未安装nethogs流量监控工具,可使用yum -y install nethogs 尝试安装,下面介绍常见用法 使用示例
nethogs eth0
通过nethogs可以看到网卡上进程级的流量信息, 查看每个进程的网络带宽情况以及对应的PID.
s可以按照Sent列进行排序, r可以按照Received列进行排序, m可以切换不同的统计单位显示,例如KB/s、KB、B、MB。监控界面信息说明如下所示。 显示字段介绍
- PID列表示相应流量关联程序的进程号。
- USER列表示相应进程的所属用户。
- PROGRAM列表示程序的具体执行路径。
- DEV列当前监控的网络接口名称。
- Sent列表示相应进程已经发送的数据流量。
- Received列表示程序已经接收的数据流量。