iftop 是一个基于 libpcap 库的网络流量监控工具。它通过监听指定网络接口上的数据包,并分析这些数据包的源地址、目标地址、源端口、目标端口、协议等信息,从而实时显示网络流量的相关统计信息。
在大多数Linux发行版中,您可以使用包管理器来安装 iftop。例如,在Ubuntu/Debian上,可以使用以下命令安装:
sudo apt-get install iftop
在终端中输入 iftop 命令即可启动 iftop。默认情况下,它会显示所有正在进行的网络连接的信息。

标准视图,端口显示关闭,每对主机两行

主机名隐藏,显示源端口,每对主机一行=按服务划分的网络流量

顶部:流量刻度尺,刻度分五个大段显示。数据行的流量条与之对应。数据行:显示实时的网络流量信息,每一行表示一个网络连接。
2秒内、10秒内和40秒内的平均流量值;底部:显示当前的总发送和接收流量、平均发送和接收速率,以及当前的流量峰值。
TX 表示发送数据RX 表示接收数据TOTAL 表示发送和接收全部流量cum 表示从运行iftop到目前的发送、接收和总数据流量peak 表示发送、接收以及总的流量峰值rates 表示过去2s、10s、40s的平均流量值 iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]
-h-n-N-p-b-B-a-i interface-f filter code-f “src host 192.168.1.10”-F net/mask-G net6/mask6-l-local IPv6 traffic (default: off)-P-m limit-m 100M-c config file-t-o 2s-o 10s-o 40s-o source-o destination以下选项仅与- -t组合使用
-s num-L numn - toggle DNS host resolution 切换DNS主机解析s - toggle show source host 切换显示本主机Hostd - toggle show destination host 切换显示目标主机Hostt - cycle line display mode 切换显示模式,没对主机显示1/2行N - toggle service resolution 切换显示端口号或端口服务名称S - toggle show source port 切换是否显示本机的端口信息D - toggle show destination port 切换是否显示远端目标主机的端口信息p - toggle port display 切换是否显示端口信息P - pause display 暂停/继续显示h - toggle this help display 切换帮助信息和主页面b - toggle bar graph display 切换是否显示平均流量图形条B - cycle bar graph average 切换流量图形条为 2秒或10秒或40秒内的平均流量T - toggle cumulative line totals 切换是否显示每个连接的总流量j/k - scroll display 可以向上或向下滚动屏幕显示的连接记录f - edit filter code 编辑过滤代码l - set screen filter 打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息L - lin/log scales 切换显示画面上边的刻度! - shell command 使用shell命令q - quit 退出1/2/3 - sort by 1st/2nd/3rd column 根据右侧显示的三列流量数据进行排序< - sort by source name 根据本主机信息列排序> - sort by dest name 根据远端目标主机列排序o - freeze current order 切换是否固定只显示当前的连接iftop 的工作原理可以概括为以下几个步骤:
iftop 首先会打开用户指定的网络接口,如 eth0、wlan0 等。iftop 使用 libpcap 库来抓取从指定网络接口上收到的数据包。libpcap 是一个网络数据包捕获库,它可以在不同的操作系统上进行网络数据包捕获。iftop 对抓取到的数据包进行解析,提取出数据包中的源地址、目标地址、源端口、目标端口、协议等信息。iftop 根据解析到的数据包信息,统计并计算出每个网络连接的发送速率和接收速率,以及总的发送流量和接收流量。iftop 将统计的流量信息以实时更新的方式显示在终端界面上,以便用户实时监控网络流量。