使用 iftop、nload、bmon、vnstat 监控 Linux 网络带宽
运维工程师在服务器运维中常需要监控网络流量,本文我将给大家介绍四款实用的 Linux 网络监控命令行工具。分别讲解 nload、iftop、bmon、vnstat 的安装方式、使用方法与核心功能,它们各有侧重,可分别查看单接口速率、连接带宽、多接口状态和历史流量,同时梳理了不同场景下的工具选择技巧。
1.nload(按接口查看吞吐量)
nload 是四款工具中最简单的一款,它以实时方式显示单个网络接口的入站和出站速率,配合小型 ASCII 图形和运行统计数据。它回答的核心问题是:“这个接口当前的数据传输速度有多快?”
1.1 安装方法
(1)Ubuntu、Debian 及衍生版:
sudo apt install nload
(2)Fedora、RHEL 及衍生版:
sudo dnf install nload
[root@lwdb81 ~]# yum install nload 已加载插件:fastestmirror, langpacks Determining fastest mirrors epel/x86_64/metalink | 3.8 kB 00:00:00 * base: mirrors.aliyun.com * epel: ftp.iij.ad.jp * extras: mirrors.aliyun.com * nux-dextop: li.nux.ro * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 nux-dextop | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 nload.x86_64.0.0.7.4-4.el7 将被 安装 --> 解决依赖关系完成 …… Running transaction 正在安装 : nload-0.7.4-4.el7.x86_64 1/1 验证中 : nload-0.7.4-4.el7.x86_64 1/1 已安装: nload.x86_64 0:0.7.4-4.el7 完毕! [root@lwdb81 ~]#
在 RHEL 兼容系统上,如果软件包不可用,请先启用 EPEL 源。
1.2 基本用法
不带参数运行,监控默认接口;或直接指定接口名称:
nload ens33

显示界面分为入站和出站两个部分,每部分显示当前速率以及平均值、最小值、最大值和总传输量:
在有多个接口时循环切:← / →,想退出时直接按 q。
2.iftop(按连接查看带宽)
nload 告诉你有多少流量在流动,但不告诉你流量去向何处。iftop 正好弥补了这个缺口。它的工作方式类似于 top 命令,会列出按带宽排序的活跃连接,让你能清楚看到哪些主机和端口造成了负载。
2.1 安装方法
(1)Ubuntu、Debian 及衍生版:
sudo apt install iftop
(2)Fedora、RHEL 及衍生版:
sudo dnf install iftop

2.2 基本用法
iftop 需要捕获数据包,因此必须以 root 身份运行,指定要监控的接口:
iftop -i ens33

以第一行为例其功能如下:
lwdb81 => 10.xxx.xxx.30 1.05Kb 1.06Kb 1.46Kb <= 184b 184b 207b
| 符号 | 含义 |
|---|---|
| => | 本机发送到 10.xxx.xxx.30 的流量 |
| <= | 本机接收来自 10.xxx.xxx.30 的流量 |
目前传输的流量很小。
默认情况下,iftop 会将 IP 地址解析为主机名、端口号解析为服务名,这可能会变慢且使界面杂乱。以下三个选项在繁忙服务器上非常实用:
| 选项 | 作用 |
|---|---|
| -n | 跳过 DNS 主机名解析 |
| -N | 端口显示为数字而非服务名 |
| -P | 显示端口列,便于区分哪个服务造成的流量 |
推荐命令:
iftop -i eth0 -nNP

退出:q
2.3 使用场景
当需要找出是哪条连接占满了链路带宽时,iftop 是最佳选择。如需进一步定位端口背后的本地进程,可配合 ss 命令使用。
3.bmon(同时监控多个接口)
bmon(bandwidth monitor)适合需要同时观察多个接口的场景。它会列出每个接口的当前接收和发送速率,并为选中的接口绘制实时流量图,这对于路由器、网关以及拥有多个网卡和网桥的虚拟化主机来说非常实用。
3.1 安装方法
(1)Ubuntu、Debian 及衍生版:
sudo apt install bmon
(2)Fedora、RHEL 及衍生版:
sudo dnf install bmon

3.2 基本用法
不带参数直接运行 bmon:
[root@lwdb81 ~]# bmon

界面说明:
| 区域 | 功能 |
|---|---|
| 上方窗格 | 列出所有接口及其 RX(接收)/ TX(发送)速率 |
| 下方窗格 | 显示当前选中接口的实时流量图 |
可通过↑ / ↓切换选中的接口,按 d 切换显示详细计数器(如错误包、丢包数),按 q 退出。
4.vnstat (历史流量统计)
前三款工具展示的是当前实时流量,退出程序后数据即消失。vnstat 则完全不同:它以后台服务形式运行,将每个接口的流量记录到数据库中,并按小时、天、月进行统计。它回答的问题是“这个月我用掉了多少流量?”而非“当前速率是多少?”。因此,它是流量限额监控和容量规划的理想工具。
4.1 安装与启用服务
(1)Ubuntu、Debian 及衍生版:
sudo apt install vnstat sudo systemctl enable --now vnstat
(2)Fedora、RHEL 及衍生版:
sudo dnf install vnstat sudo systemctl enable --now vnstat

启用守护进程采集数据:
systemctl start vnstat systemctl enable vnstat
4.2 工作原理
vnstat 通过定期采样接口计数器来收集数据,而不是捕获数据包,因此需要一定时间来积累数据。
4.3 查看统计摘要
服务运行一段时间后,查看摘要:
vnstat

输出示例:显示 2026 年 6 月的流量,以及今天的流量:
[root@lwdb81 ~]# vnstat rx / tx / total / estimated virbr0-nic: Not enough data available yet. virbr0: Not enough data available yet. ens33: 6 月 '26 51 KiB / 29.54 MiB / 29.59 MiB / 0 KiB today 51 KiB / 29.54 MiB / 29.59 MiB / -- 您在 /var/spool/mail/root 中有新邮件
4.4 常用选项
| 命令 | 作用 |
|---|---|
| vnstat -h | 按小时显示 |
| vnstat -d | 按天显示 |
| vnstat -m | 按月显示 |
| vnstat -l | 实时显示当前吞吐量(按 Ctrl+C 退出) |
优点:由于后台守护进程持续记录,历史数据在系统重启后仍然保留。
5.工具对比与选择
四款工具虽有部分功能重叠,但每款都有其明确的适用场景:
| 工具 | 展示内容 | 需要 root | 最佳用途 |
|---|---|---|---|
| nload | 单个接口的入站/出站速率 | 否 | 快速查看总吞吐量 |
| iftop | 按连接统计带宽 | ✅ | 找出占用带宽的主机或端口 |
| bmon | 所有接口 + 实时流量图 | 否 | 拥有多个接口的主机 |
| vnstat | 按小时/天/月的历史统计 | 否 | 跟踪长期流量使用和配额 |
在日常运维中:
- 长期运行 vnstat 记录历史数据
- 当需要排查实时流量峰值时,使用 iftop 进行深入分析
命令速记卡片:
nload eth0 # 查看接口实时吞吐量 sudo iftop -i eth0 -nNP # 查看按连接排序的带宽(root) bmon # 同时监控所有接口 vnstat -d # 查看每日历史流量 vnstat -l # 实时模式(Ctrl+C 退出)
结语
nload、iftop、bmon、vnstat 这四款网络监控工具定位清晰、各司其职,可根据运维需求灵活选用。排查瞬时带宽占用优先使用 iftop,查看实时吞吐量选 nload 与 bmon,长期流量统计则依靠 vnstat。熟练掌握这些命令,能够高效完成服务器网络状态监测、流量排查与容量规划等日常运维工作。
以上关于使用 iftop、nload、bmon、vnstat 监控 Linux 网络带宽的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 使用 iftop、nload、bmon、vnstat 监控 Linux 网络带宽
微信
支付宝