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

解释:
-
TX:发送(流出)流量。
cumulative总发送量,peak峰值速率,rates分别是过去 2s、10s、40s 的平均速率。 -
RX:接收(流入)流量。含义同上。
-
TOTAL:总流量(TX+RX)。
- 每一行代表一对主机之间的连接。
- => 和 <= 箭头表示流量方向。=> 表示左边主机发送到右边主机(即本机的流出/对方流入),<= 相反。
- 右侧三列数据分别是:过去2秒、10秒、40秒的平均流量速率。
- 条形图(#):直观显示流量比例,长度随流量大小变化。
5、常用命令行参数
| 参数 | 含义 |
|---|---|
-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> |
设置条形图的比例上限(单位同显示单位) |
6、交互式快捷键(运行时使用)
在 iftop 运行界面中,按下以下按键可以改变显示:
| 快捷键 | 功能 |
|---|---|
h |
显示帮助信息 |
n |
切换是否解析主机名 |
s |
切换源主机(左边)显示(IP/主机名) |
d |
切换目标主机(右边)显示 |
t |
循环切换显示模式 (=>/<= / 只有 => / 只有 <= / 流量合计)。非常有用! |
N |
切换端口解析(显示端口号还是服务名) |
P |
暂停/继续刷新显示 |
p |
显示/隐藏端口信息(同命令行 -P) |
1/2/3 |
按第一列(源)、第二列(目的)、第三列(2秒速率)排序 |
< / > |
按左边/右边的主机名排序 |
o |
冻结当前连接行(滚动时保持不动) |
b |
切换是否显示流量条形图 |
B |
切换计算周期(2/10/40秒) |
T |
切换是否显示累计总量(TX/RX/TOTAL 行) |
j/k |
上下滚动连接列表 |
f |
编辑过滤代码(高级) |
l |
设置屏幕过滤正则表达式(输入文本过滤) |
q |
退出 |
常用案例
# 最常用:监控 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’

二、nethogs
1.安装
-
Debian/Ubuntu:
sudo apt install nethogs -
RHEL/CentOS/Fedora: 需先启用EPEL仓库,然后
sudo yum install nethogs或sudo dnf install nethogs
2.常用命令行参数
启动时可加入参数进行控制,以下是常用选项:
| 参数 | 说明与示例 |
|---|---|
-d <秒数> |
设置刷新间隔,例如 sudo nethogs -d 5 每5秒刷新。 |
-v <模式> |
设置显示单位,0=KB/s(默认), 3=总MB, 4=MB/s。 |
<设备名> |
监控指定网卡,如 sudo nethogs eth0。 |
-c <次数> |
更新指定次数后自动退出。 |
-t |
启用追踪模式(显示时间戳)。 |
-l |
显示进程的完整命令行。 |
3.交互式快捷键
程序运行时,可以使用快捷键进行控制:
| 按键 | 功能 |
|---|---|
m |
循环切换显示模式(KB/s, KB, B, MB等)。 |
r |
按接收流量排序。 |
s |
按发送流量排序。 |
q |
退出程序。 |
实例
