Linux下的网络监控工具

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过速的错误数

发表评论

电子邮件地址不会被公开。