使用 iftop - 交互式实时流量监控 (最推荐)
iftop 是一个非常流行的实时网络流量监控工具,它能清晰地显示哪个 IP 地址正在占用最多带宽,非常适合排查网络瓶颈或异常流量。

安装 iftop
如果系统中没有 iftop,可以使用 yum 安装:
# CentOS 7/8 sudo yum install iftop -y
使用 iftop
直接在命令行输入 iftop 即可启动:
sudo iftop
注意: iftop 需要 root 权限来捕获网络数据包。
界面解读
启动后,你会看到一个类似 top 命令的界面:

=> 10.0.1.100
<= 10.0.1.100
Traffic Ports
----------------------------
10.0.1.1 22
<= 1.15 Mbits 1.52 Mbits => 10.0.1.1
10.0.1.2 80
<= 800 Kbits 920 Kbits => 10.0.1.2
10.0.1.3 443
<= 500 Kbits 600 Kbits => 10.0.1.3
...
- 中间部分:显示了当前网络连接中流量最大的源/目标 IP 地址。
<=:入站流量(Inbound),即流向本机的流量。=>:出站流量(Outbound),即从本机流出的流量。- 最右侧:显示了对应的端口号。
- 底部状态栏:显示所有网络接口的总流量、平均带宽等。
常用快捷键
n:显示主机名而不是 IP 地址。N:再次按N切换回 IP 地址。s:切换源主机/端口显示。d:切换目标主机/端口显示。p:暂停/恢复显示。b:切换条形图显示模式。q:退出iftop。
使用 nethogs - 按进程监控网络流量
nethogs 的特点是它能告诉你是哪个进程(Program)在消耗网络流量,这对于定位具体是哪个应用程序导致流量激增非常有用。
安装 nethogs
sudo yum install nethogs -y
使用 nethogs
直接运行即可:
sudo nethogs
界面解读
PID USER PROGRAM DEV SENT RECEIVED
1234 root sshd eth0 1.25MB 3.45MB
5678 apache2 httpd eth0 45.6MB 12.3MB
9012 john chrome eth0 120MB 580MB
...
PID:进程 ID。USER:运行该进程的用户。PROGRAM:进程名。DEV:使用的网络设备(如eth0,ens33)。SENT和RECEIVED:该进程发送和接收的数据量。
按 q 键退出。
使用 iptraf / nload - 经典流量监控工具
iptraf (功能全面的网络监控器)
iptraf 是一个基于 curses 的 IP 网络监控器,功能非常强大。

安装:
sudo yum install iptraf -y
使用:
sudo iptraf
启动后,它会提供一个菜单,你可以选择:
IP traffic monitor:监控 IP 流量。General interface statistics:查看网络接口的通用统计信息。Detailed interface statistics:查看指定接口的详细统计信息。
nload (简洁的双向流量图)
nload 以图形化的方式显示流入和流出网络设备的实时流量,非常直观。
安装:
sudo yum install nload -y
使用:
sudo nload
它会自动列出所有网络接口,你可以使用左右箭头键切换接口查看,按 q 退出。
使用 sar (系统活动报告器) - 历史数据分析
sar 是 sysstat 软件包的一部分,它主要用于收集、报告和存储系统活动信息,它的优势在于可以查看历史网络流量数据,而不仅仅是实时数据。
安装 sysstat
sudo yum install sysstat -y
查看实时网络流量
sar -n DEV 1 5
-n DEV:显示网络设备统计信息。1:每隔 1 秒刷新一次。5:共刷新 5 次。
输出示例:
Linux 3.10.0-1160.el7.x86_64 (centos7) 11/20/2025 _x86_64_ (1 CPU)
12:00:01 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
12:00:02 PM eth0 125.3 89.1 85.2 22.3 0.0 0.0 0.0
12:00:03 PM eth0 210.5 95.4 142.1 25.6 0.0 0.0 0.0
...
Average: eth0 167.9 92.2 113.6 23.9 0.0 0.0 0.0
rxpck/s:每秒接收的数据包数。txpck/s:每秒发送的数据包数。rxkB/s:每秒接收的数据量(KB)。txkB/s:每秒发送的数据量(KB)。
查看历史网络流量
sar 会自动将数据保存到 /var/log/sa/ 目录下,你可以查看昨天的数据:
sar -n DEV -f /var/log/sa/saDD # 查看昨天的数据 sar -n DEV -f /var/log/sa/sa19
DD 代表上个月的某一天。
使用 vnstat - 轻量级网络流量统计器
vnstat 是一个基于控制台的网络流量监控器,它后台运行,持续收集网络数据,并以友好的格式显示流量统计信息,非常适合查看长期的流量使用情况。
安装 vnstat
sudo yum install vnstat -y
初始化数据库
需要为要监控的网络接口创建数据库:
# 查看你的主网络接口,通常是 ens33 或 eth0 ip a sudo vnstat -u -i eth0 # 将 eth0 替换成你的接口名
使用 vnstat
- 查看今日流量:
vnstat
- 查看本月流量:
vnstat -m
- 查看昨日流量:
vnstat -y
- 查看实时流量(类似
nload):vnstat -l
总结与选择建议
| 工具名 | 主要特点 | 适用场景 |
|---|---|---|
iftop |
交互式、按 IP/端口排序、实时 | 首选,快速定位哪个IP或连接占用了大量带宽。 |
nethogs |
按进程监控、实时 | 当你需要知道是哪个程序(如Chrome, wget)导致流量异常时。 |
nload |
图形化、直观显示双向流量 | 快速、直观地查看总流入/流出流量曲线。 |
iptraf |
功能全面、菜单式操作 | 需要详细分析网络连接、协议、端口等综合信息时。 |
sar |
查看历史数据、系统自带 | 分析过去某个时间段的网络流量趋势,用于故障排查或容量规划。 |
vnstat |
长期统计、后台运行 | 监控网络接口的月、日、年流量使用情况,像流量计费一样。 |
对于绝大多数日常排查和监控需求,iftop 和 nethogs 是最常用且最强大的组合,一个看连接,一个看进程。
