Linux使用nload查看网卡实时流量
作者:技术拾光时间:2026-06-27 08:59:13浏览:545
nload是轻量级Linux实时流量监控工具,直接读取/proc/net/dev。现代系统网卡非eth0名,需用ip命令查活跃网卡并显式指定;默认单位KB/s而非kbit/s,可加-u切换;刷新建议t=200ms,多网卡用-m切换;硬件卸载会干扰计数。适合扫整体吞吐,不记录历史或查进程。
说到 Linux 下的实时流量监控工具,nload 算得上是轻量级里的“老兵”——不抓包、不解析连接,直接读 /proc/net/dev,快而且轻。但很多刚上手的人一运行就发现显示 0 或者直接报错退出。不要急于怀疑工具故障,十有八九是选错了网卡,或者对单位的理解出现了偏差。

为什么 nload 启动后显示 0 或报 “Device eth0 not found”
现代 Linux 系统早已不再使用 eth0 那套命名,取而代之的是 ens33、enp0s3、enx001122334455 这类可预测名称。内核启动时如果没有找到 eth0,nload 自然直接报错退出。
- 首先查看真实活跃网卡:
ip -br link | grep UP,过滤掉lo、docker0、veth*这些非物理或主网卡 - 确认后显式指定:
nload ens33,不要依赖默认行为 - 如果仍然显示 0,用
tcpdump -i ens33 -c 2 port 80验证该接口是否真的有数据进出 - 某些虚拟化环境(比如 LXC、OpenVZ)中,
/proc/net/dev可能更新不及时甚至停止更新,这时nload显示偏低或恒为 0,建议换iftop -P交叉验证
nload 的单位是 KB/s,不是 kbit/s —— 这个坑值得注意
顶部显示的 Cur:、Avg: 全都是字节(B),不是比特(b)。举例来说:如果带宽是 100 Mbit/s,理论最大下载速度大约为 12.5 MB/s = 12500 KB/s;而 nload 显示 1500 KB/s,实际只占用了带宽的 12% 左右。这样换算,是不是容易误判?
- 加上
-u b切换为比特单位:nload -u b ens33,数值会变为原来的 8 倍,单位变成kbit/s、Mbit/s -u M是 MB/s,-u m是 Mbit/s —— 注意大小写敏感,写反了结果会不同- 如果想省事,直接
-u M查看 MB/s,与常见的宽带套餐单位对齐,避免心算
如何让 nload 更准、更实用
nload 并非“装完就能完美工作”的工具,几个关键参数直接影响能否捕捉到突发流量或看清趋势。
- 刷新太快反而失真:默认 100ms 刷新,但内核统计存在延迟;建议
-t 200(200ms)更稳定,低于 100ms 意义不大 - 多网卡切换:加上
-m启用多设备模式,启动后按左右方向键轮换,特别适合拥有公网+内网双网卡的服务器 - 硬件卸载干扰:如果网卡开启了
tx offload或rx offload,部分流量会绕过内核协议栈,/proc/net/dev就不再计数。用ethtool -k ens33检查,临时关闭:ethtool -K ens33 tx off rx off - 它不记录历史、不输出日志、不关联进程——想要存储数据或查看谁在传输,需要换用
vnstat或iftop -P
nload 的价值在于“一眼扫清整体吞吐”,但它最常被误用的地方是当作万能工具去查连接、看进程、追历史。盯实时总量它很稳,超出这个范围的事,还是交给其他工具吧。
