Linux下的网络流量监控工具,这里推荐两个:ifstat和iftop。其中,ifstat适合查看所有网卡的总吞吐量,而iftop适合查看某一块网卡的连接流量,比如想看看某个IP占用了多少带宽,iftop再适合不过了。
一,ifstat介绍及用法
安装
$ yum install ifstat #适用于centos/redhat,需先安装rpmforge源
$ sudo apt-get install ifstat #适用于debian/ubuntu
需要注意的是,CentOS/Redhat上面安装ifstat需要先安装rpmforge源,安装方法请参考这篇文章
用法
$ ifstat -a
lo eth0 eth1 eth2
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
0.00 0.00 0.80 0.80 228.51 253.87 0.00 0.00
0.00 0.00 0.15 1.66 195.24 290.59 0.00 0.00
0.00 0.00 0.90 0.96 188.68 265.57 0.00 0.00
二,iftop介绍及用法
安装
$ yum install iftop #适用于centos/redhat
$ sudo apt-get install iftop #适用于debian/ubuntu
实例用法
$ iftop #默认监控第一块网卡(eth0)的流量
$ iftop -i eth1 #监控eth1
$ iftop -n #直接显示IP, 不进行DNS反解析
$ iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0
#显示某个网段进出封包流量
相关参数
-i #指定要监控的网卡
进入iftop画面后的一些操作命令(注意大小写)
h 显示帮助
n 切换显示IP/域名
s 显示/隐藏本机IP
S 显示/隐藏本地端口
p 显示/隐藏本地和远程端口
P 暂停
b 不显示顶端工具条
t 切换2行显/1行/只显示发送流量/只显示接收流量
T 显示总流量(可配合t自由变化)
b 不显示流量图形条
B 流量图形条显示2s/10s/40s内的平均流量
l 打开屏幕过滤功能,输入要过滤的字符,比如ip,回车后屏幕就只显示这个IP的流量信息
L 切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
j 向上滚动屏幕显示
k 向下滚动屏幕显示
< 根据左边的本机名或IP排序
> 根据远端目标主机的主机名或IP排序
q 退出
三,NetHogs介绍
NetHogs可以统计Linux下每个进程的实时网络带宽使用情况,非常实用。
安装
$ yum install nethogs #适用于CentOS,需要EPEL源
$ sudo apt-get install nethogs #适用于Ubuntu/debian
使用
$ nethogs -d 5 eth0 -a #默认监控第一块网卡(eth0)的流量,每隔5秒变化一次
#小技巧
#在nethogs界面,按q退出,按m键可以切换total (KB, B, MB)和KB/s模式
四,sar命令(推荐)
$ yum install -y sysstat #安装
$ sar -n DEV 1 10 #每秒取一次网络接口的数据,取10次以后结束
-n参数很有用,他有6个不同的参数: DEV | EDEV | NFS | NFSD | SOCK | ALL,其代表的含义:
DEV显示网络接口信息
EDEV显示关于网络错误的统计数据
NFS统计活动的NFS客户端的信息
NFSD统计NFS服务器的信息
SOCK显示套接字信息
ALL显示所有5个开关
返回结果解释
$ sar -n DEV 1 10 #每秒取一次网络接口的数据,取10次以后结束
Linux 3.10.0-514.21.1.el7.x86_64 (VM_22_122_centos) 12/18/2017 _x86_64_ (16 CPU)
01:53:40 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:53:41 PM eth0 93357.00 92202.00 4953.82 4921.16 0.00 0.00 0.00
01:53:41 PM lo 50.00 50.00 15.91 15.91 0.00 0.00 0.00
01:53:41 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:53:42 PM eth0 95136.00 93973.00 5045.86 5002.15 0.00 0.00 0.00
01:53:42 PM lo 23.00 23.00 25.15 25.15 0.00 0.00 0.00
01:53:42 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:53:43 PM eth0 100087.00 98971.00 5312.53 5259.08 0.00 0.00 0.00
01:53:43 PM lo 97.00 97.00 53.14 53.14 0.00 0.00 0.00
01:53:43 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:53:44 PM eth0 117234.65 116229.70 6208.22 6154.42 0.00 0.00 0.00
01:53:44 PM lo 91.09 91.09 38.34 38.34 0.00 0.00 0.00
IFACE:LAN接口
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包
rxerr/s:每秒钟接收的坏数据包
txerr/s:每秒钟发送的坏数据包
coll/s:每秒冲突数
rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s:发送数据包时,每秒载波错误数
rxfram/s:每秒接收数据包的帧对齐错误数
rxfifo/s:接收的数据包每秒FIFO过速的错误数
txfifo/s:发送的数据包每秒FIFO过速的错误数