nload最省事,直接读/proc/net/dev零开销;iftop需sudo加-n-N定位IP端口;sar需提前启用才可查历史;/proc/net/dev适合脚本化手动计算。

直接看实时吞吐量,nload 最省事,不用 root、不抓包、响应快;要查是哪个 IP 或端口在猛传数据,必须用 iftop,但得加 -n 和 -N,否则卡且信息不准。
用 nload 看网卡总吞吐量(推荐日常巡检)
nload 直接读 /proc/net/dev,零开销、无干扰,适合快速摸底或 VPS 监控。
- 默认监控第一个非回环网卡(如
ens33),直接运行nload即可 - 指定接口:运行
nload ens33;想同时看多个,用nload ens33 lo,但别用-m—— 界面会挤,各接口刷新不同步,容易误判峰值是否叠加 - 单位注意:
-u M是兆比特每秒(Mbps),不是 MB/s;100 Mbps ≈ 12.5 MB/s,别拿它直接比磁盘写速 - 按左右方向键切换接口,
q退出;m键可切单位,但建议固定用-u M启动,避免混淆
用 iftop 定位高流量连接(排查异常必备)
iftop 基于 libpcap 抓包,能精确到 IP:port → IP:port,但必须用 root 权限,且默认会做 DNS 反解,拖慢响应、暴露隐私。
- 必加参数:
sudo iftop -n -N——-n禁 DNS,-N显端口号,缺一不可 - 只看某网卡:加
-i eth0;只看某网段:加-F 192.168.1.0/24;只看字节单位(更直观):加-B - 界面里
TX/RX列单位是 KB/s 或 MB/s,顶部第二行的tot是当前总带宽,不是峰值;看到异常 IP 先别急着封,可能是云厂商健康检查或 CDN 回源 - 按
l可过滤,输入 IP 或域名后回车;按P暂停刷新方便记录;q退出
用 sar 查历史吞吐率(需提前配置)
sar 不是实时“盯屏”工具,而是周期采样+持久化统计,适合复盘或确认是否长期跑满带宽。首次使用前必须启用数据收集,否则查不到历史。
- 安装后编辑
/etc/default/sysstat,把ENABLED="false"改成"true",再重启服务:sudo systemctl restart sysstat - 实时采样:运行
sar -n dev 1 5(每秒一次,共 5 次),重点关注rxkb/s和txkb/s字段 - 单位是 KB/s;若要换算成 Mbps,粗略乘以 0.0078(即 ÷125),因为 1 KB/s = 8 Kbps = 0.0078 Mbps
- 它不显示连接详情,也不反映瞬时尖峰——
sar -n dev 1 1的结果是那一秒内的平均值,和nload的柱状图峰值不是一回事
手动读 /proc/net/dev(无依赖脚本化场景)
这是最底层的方式,适合写监控脚本或容器环境里无法装额外工具时。所有其他工具底层都靠它,但需要自己算差值、换单位。
- 运行
cat /proc/net/dev可见原始字节数;rx_bytes在第 2 列,tx_bytes在第 10 列(空格分隔) - 两次读取间隔 1 秒,差值除以 1024² 得 MiB/s,除以 125000 得 Mbps(因 1 Mbps ≈ 125,000 B/s)
- 用
watch -n 1 'cat /proc/net/dev | grep -E "(eth|ens|wlan)"'可轮询,加-d参数还能高亮变化 - 注意:
lo接口流量也会计入,排查真实外网占用时记得grep -v "lo:"
真正麻烦的不是“怎么查”,而是查完之后怎么归因——nload 和 iftop 都看不到进程名,这时候得切到 nethogs 或结合 ss -tunlp 手动匹配 PID;另外,容器环境里很多连接会显示为 unknown TCP,那是网络命名空间没被正确识别,不是工具坏了。


















