nload 与 bmon 与 vnstat:带宽监控对比
11 分钟阅读 - 2026年6月15日

nload、bmon 和 vnstat 在 Linux 带宽监控中的对比分析。何时使用哪一种工具、它们各自的局限性,以及如何组合使用以实现全面覆盖。
nload:实时吞吐量一目了然
nload 是一款终端工具,通过 ASCII 图表实时显示单个接口的吞吐量,分别展示入站和出站流量。它直接读取 /proc/net/dev ,因此无需 root 权限即可运行,且 CPU 占用率微乎其微。
使用接口名称启动它:
nload eth0有用的参数:
-u M将显示单位改为 MB/s(默认单位为每秒比特数)-m在同一屏幕上显示多个接口,不显示图表-t 1000设置刷新间隔(单位为毫秒)
按下 F2 会话中按此键,可在不重启的情况下调整刷新率和图表缩放比例。
屏幕上显示的内容:当前速率、平均值、最小值、最大值以及会话期间的总传输量。这些信息足以确认服务器是否正在传输您预期的流量,或发现突发的流量峰值。您无法获得:按进程归因、按连接细分或任何历史数据。关闭终端后,会话统计数据将消失。
若想在五秒内解答“该服务器当前是否已占满带宽?”,请使用 nload。
bmon:监控多个接口
bmon 采用了不同的方法。它不再详细展示单个接口,而是同时显示主机上的所有接口。顶部面板列出了每个接口及其当前的接收(RX)和发送(TX)速率。底部面板则针对您所选的接口绘制图表。使用方向键可在各接口间切换。
这正是您在虚拟化主机、路由器、配备多网卡的专用服务器,或运行 Docker 的任何设备上所需的工具——在这些场景中,接口列表往往多达数十个。若使用 nload 逐个检查,将十分繁琐。
按下 d 在会话中,即可切换至详细统计视图,该视图会额外显示数据包计数、错误率、丢包数及碰撞情况。这些数据对于诊断链路波动、MTU 不匹配或未表现为吞吐量问题的网卡驱动程序故障至关重要。
使用 -p 过滤接口列表以减少视觉杂乱:
bmon -p "eth*,ens*"bmon 还可以通过 -o JSON、XML、ASCII 或 HTML 格式导出结构化数据,这对于脚本化快照或将数据输入其他工具非常方便:
bmon -o ascii -p eth0 > /tmp/eth0-stats.txt不过与 nload 一样,它也有一个局限性:没有持久化的历史记录。关闭后数据即消失。
vnstat:长期使用情况追踪
vnstat 填补了其他两者的空白。它作为后台守护进程运行(vnstatd),并将流量计数器写入位于 /var/lib/vnstat/。该数据库在系统重启后仍会保留数据,并保存 5 分钟采样数据 48 小时、每小时数据 4 天、每日总计 2 个月,以及无限期保存的月度和年度汇总数据。
请在第一天就启用它:
systemctl enable --now vnstat关键点:vnstat 仅统计守护进程启动后的流量。它无法追溯测量安装前的使用情况。在新服务器上,请在配置阶段安装该工具,否则在需要数据时将无法获取。
标准查询:
vnstat # summary
vnstat -d # daily breakdown
vnstat -m # monthly totals
vnstat -h # last 24 hours, hourly
vnstat -t # top days
vnstat --json # JSON export
vnstat -i eth0 # specific interfacevnstat 是解答“上个月我们传输了多少数据?”、“是否在月度配额范围内?”以及“长期趋势如何?”等问题的理想工具。 --alert 参数允许您设置与自定义计费周期相关的阈值,当您的服务商计费周期与日历月不一致时,此功能非常有用。
若需在状态页面或报告中展示图表,请配合 vnstati 生成 PNG 输出,以便在状态页面或报告中使用图表:
vnstati -s -i eth0 -o /var/www/html/traffic.pngvnstat 不擅长的领域:实时诊断。虽然 -l 虽然有实时模式,但它仅是一个计数器,没有图表,也没有按接口的详细信息。对于事件响应,您仍需在另一个窗口中打开 nload 或 bmon。
快速对比
| 功能 | nload | bmon | vnstat |
|---|---|---|---|
| 重点 | 实时吞吐量 | 多接口实时统计 | 历史使用情况 |
| 可视化 | 双ASCII图表 | 接口列表 + 图表 | 表格、通过 vnstati 生成的 PNG 图 |
| 持久化数据 | 无 | 否 | 是 |
| 导出格式 | 无 | JSON、XML、ASCII、HTML | JSON、XML、CSV |
| 按进程归因 | 无 | 否 | 否 |
| 以守护进程方式运行 | 否 | 否 | 是 |
| 需要 root 权限 | 否 | 否 | 否 |
| 最适合 | 快速检查 | 拥有多个网卡的主机 | 容量规划、计费 |
这些工具均无法告知您是哪一个进程或连接导致了流量。为此, iftop (按连接)和 nethogs (按进程) 才是合适的工具,且它们与上述所有工具配合良好。
何时使用何种工具
对于具有月流量上限的单网口 VPS,请在第一天安装 vnstat,并在需要快速检查时使用 nload。这可满足 95% 的情况。
对于独立服务器、虚拟化主机或任何运行容器的环境,请用 bmon 替代 nload。当您拥有超过三四个网卡和网桥时,多接口视图能节省大量时间。
若需对整个机群进行容量规划,vnstat 的 JSON 导出数据可无缝接入 Prometheus、Grafana 或您现有的任何指标监控系统。只需配置一次,直到需要生成月度报告时才需再次关注。
当流量异常且需要追踪源头时,上述三种工具均无法提供答案。此时 iftop (按带宽排序的顶级连接)和 nethogs (前几大进程) 便大显身手。
这三款工具均读取内核计数器而非捕获数据包,因此即使在饱和的10Gbps链路上,其开销也微乎其微。没有理由不将这三款工具全部安装。
总结
nload、bmon 和 vnstat 分别针对不同的问题:某个接口当前的状况、多个接口的整体状况,以及历史流量趋势。针对每个问题选择一个工具,您就能轻松搞定带宽监控——整个配置过程仅需约五分钟,且不会带来可测量的系统负载。
如果您的工作负载产生稳定的流量,且希望不再担心超额账单,那么不限流量的 VPS 能为您提供固定费率的端口和可预测的成本,这使得 vnstat 的历史数据成为规划工具,而非计费警报。

优化 Linux 服务器工作负载的调整配置文件
如何为 GPU、数据库和高带宽 Linux 服务器选择、应用和定制经过调整的配置文件,并提供示例和 Ansible 部署技巧。
16 分钟阅读 - 2026年6月9日
VPS 的 Linux OOM 杀手调整:实用指南
12 分钟阅读 - 2026年6月8日