一、iftop

1、iftop 是什么?

iftop 是一款基于终端的实时网络流量监控工具。它监听指定网络接口(如 eth0, wlan0)上的数据包,并以动态更新的条形图形式,清晰地展示当前主机与外部 IP 地址之间的带宽使用情况。

核心特点:

  • 实时监控:动态刷新(默认每2秒),直观看到瞬时流量。

  • 双向流量:区分流入(RX)和流出(TX)的流量。

  • 主机级粒度:按 IP 地址或主机名显示流量,便于定位具体通信对端。

  • 无历史记录:只显示当前监控期间的流量总和与峰值

2、主要用途

  1. 快速定位带宽占用者:当服务器网络缓慢时,找出是哪个 IP 或端口消耗了大量带宽。

  2. 诊断异常流量:发现可疑的外部连接,辅助安全排查(如 DDoS 攻击、挖矿木马外连)。

  3. 监控特定服务流量:查看 Web 服务器、数据库服务器等的进出流量情况。

  4. 网络流量可视化:通过直观的条形图理解流量分布。

3、安装方法

Debian/Ubuntu:

sudo apt update
sudo apt install iftop

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

image

 解释:

  • 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

# 仅监控目标端口 80443 的流量(需要 root)
sudo iftop -f ‘port 80 or port 443

 

image

 

 

二、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 退出程序。

实例

image