一、iftop 是什么?
iftop 是一款基于终端的实时网络流量监控工具。它监听指定网络接口(如 eth0, wlan0)上的数据包,并以动态更新的条形图形式,清晰地展示当前主机与外部 IP 地址之间的带宽使用情况。
核心特点:
-
实时监控:动态刷新(默认每2秒),直观看到瞬时流量。
-
双向流量:区分流入(RX)和流出(TX)的流量。
-
主机级粒度:按 IP 地址或主机名显示流量,便于定位具体通信对端。
-
无历史记录:只显示当前监控期间的流量总和与峰值
二、主要用途
-
快速定位带宽占用者:当服务器网络缓慢时,找出是哪个 IP 或端口消耗了大量带宽。
-
诊断异常流量:发现可疑的外部连接,辅助安全排查(如 DDoS 攻击、挖矿木马外连)。
-
监控特定服务流量:查看 Web 服务器、数据库服务器等的进出流量情况。
-
网络流量可视化:通过直观的条形图理解流量分布。
三、安装方法
Debian/Ubuntu:
RHEL/CentOS:
sudo yum install epel-release # CentOS/RHEL 7/8 sudo yum install iftop # 或使用 dnf (Fedora/RHEL 8+) sudo dnf install iftop
四、基本使用与输出解读
1. 最简单的启动
-
默认监听第一个非回环接口(通常是
eth0或ens33)。
iftop

解释:
-
TX:发送(流出)流量。
cumulative总发送量,peak峰值速率,rates分别是过去 2s、10s、40s 的平均速率。 -
RX:接收(流入)流量。含义同上。
-
TOTAL:总流量(TX+RX)。
- 每一行代表一对主机之间的连接。
- => 和 <= 箭头表示流量方向。=> 表示左边主机发送到右边主机(即本机的流出/对方流入),<= 相反。
- 右侧三列数据分别是:过去2秒、10秒、40秒的平均流量速率。
- 条形图(#):直观显示流量比例,长度随流量大小变化。
五、常用命令行参数
| 参数 | 含义 |
|---|---|
-i <interface> |
指定监听的网络接口,如 -i eth0, -i wlan0 |
-n |
禁用主机名解析,直接显示 IP,加快响应速度(重要!) |
-N |
显示端口号时,尝试解析成服务名称(如 80->http) |
-p |
启用混杂模式,监听所有经过网卡的数据包(而不仅是发往本机的) |
-P |
显示端口。这是一个非常重要的参数,能显示流量具体发生在哪个端口上。 |
-B |
以字节(Bytes)为单位显示流量(默认是比特 bits)。1 Byte = 8 bits。 |
-F <net/mask> |
显示特定网段的流量,如 -F 192.168.1.0/24 |
-f <filter code> |
使用 BPF 过滤代码,高级过滤,如 -f ‘port 80’ |
-m <limit> |
设置条形图的比例上限(单位同显示单位) |
常用案例
# 最常用:监控 eth0,显示端口,不解析域名 sudo iftop -i eth0 -nP# 监控内网网段,并以字节为单位显示 sudo iftop -n -F 192.168.1.0/24 -B# 仅监控目标端口 80 或 443 的流量(需要 root) sudo iftop -f ‘port 80 or port 443’
