在运维工作中经常会碰到实时流量监控的需求,明月比较喜欢使用的是iftop和iptraf-ng,尤其是iftop用的最多今天就特意整理了iftop命令的详细资料分享出来,外加部分iptraf-ng的简单使用。

iftop命令可以查看网络上的流量情况,包括实时速率、总流量、平均流量等,是一款非常轻量的实时流量监控工具。
在调试网络通信的程序中可能会用得上。
注意,iftop命令不记录历史数据,无报表,且只能显示从程序启动到现在的总流量。它的运行需要root权限。
安装
iftop命令是外置的命令,所以呢我们需要安装一下这个命令,以CentOS 7.x为例:
yum install -y epel-release && yum install -y iftop
理论上只要你安装了epel-release这个yum源,就可以直接安装iftop的。
EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为
RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了
EPEL之后,就相当于添加了一个第三方源。
直接运行iftop即可启动流量监控。如下图所示:

其中:
- 第一行,是带宽,下面带有标尺,用来标示每个连接上的实时流量占用的带宽
- 中间部分,是所有的连接,默认显示的是主机名,可以通过参数显示ip,箭头表示数据方向
- 中间右侧三列,分别是该连接2s、10s、40s的平均流量
- 底部三行,分别表示发送、接收、汇总的流量
- 底部三行第2列,为iftop启动到现在的流量汇总
- 底部三行第3列,为峰值速率
- 第4列,为平均值
- 注意,流量单位为bit,非Byte
可以看到,通过iftop可以很容易看到各个连接的流量使用情况。
参数
在启动iftop时,可以指定监控的网卡,默认为第一块网卡:
iftop -i eth1
其他常用命令:
iftop -n # 直接显示IP, 不进行DNS反解析iftop -N # 直接显示连接埠编号, 不显示服务名称iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0 # 显示某个网段进出包流量
一般情况下,使用 iftop -nN启动即可。
在进入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: 退出
我一般都是使用iftop -nN -i eth0启动,然后再辅助各种参数来调整。
iptraf-ng简介
另外跟iftop命令很接近就是iptraf-ng了,这是一个IPTraf 的衍生版本,主要是CentOS里常见,iptraf 命令是基于 ncurses 的 IP LAN 监视器,它生成各种网络统计信息,包括 TCP 信息、UDP 计数、ICMP 和 OSPF 信息,以太网负载信息,节点统计信息,IP 校验和错误等。
明月感觉iptraf-ng界面比较好看,iftop相对来说很简约,主要就看大家的喜好了,来两张iptraf-ng的动图大家感受一下iptraf-ng的界面:


要注意的是无论iftop还是iptraf-ng都是实时动态的,并且不会做记录。
1 条评论
挺好用的工具