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

iftop.jpg

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即可启动流量监控。如下图所示:

iftop2.jpg

其中:

  • 第一行,是带宽,下面带有标尺,用来标示每个连接上的实时流量占用的带宽
  • 中间部分,是所有的连接,默认显示的是主机名,可以通过参数显示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的界面:

IP流量监控

网络流量监控

要注意的是无论iftop还是iptraf-ng都是实时动态的,并且不会做记录。

最后修改:2024 年 03 月 12 日
如果觉得我的文章对你有用,请随意赞赏