nload最省事,启动即显示入/出流量曲线和速率,默认监控首个非loopback网卡;iftop则按连接展示ip:端口及实时速率,需sudo权限,适合定位高流量来源。

直接看实时流量用 nload 最省事
nload 是个轻量级终端工具,启动即显示当前网卡的入/出流量曲线和速率,不需要额外参数就能工作。它默认监控第一个非 loopback 网卡(通常是 eth0 或 ens33),适合快速摸底。
常见错误现象:运行 nload 后显示 “Device eth0 not found” —— 这是因为你的主网卡名不是 eth0。先用 ip -br a 查真实接口名,再指定:nload ens33 或 nload enp0s3。
实操建议:
- 按
左右方向键切换不同网卡(前提是多个活跃接口) - 按
q退出,按m切换单位(kbit/s、Mbit/s、MB/s) - 加
-t 2000可把刷新间隔从默认 500ms 改为 2s,减少终端闪烁 - 注意它不显示进程来源,只反映“总量”,无法定位谁在传数据
想看到哪个进程在占带宽就用 iftop
iftop 类似于 top,但按网络连接排序,能列出实时的 IP:端口 对 + 流量速率 + 连接状态。它依赖 libpcap,普通用户需加 sudo 才能抓包。
常见错误现象:运行 iftop 报错 Unable to get list of interfaces —— 通常因为没装 libpcap 或权限不足;Ubuntu/Debian 上补装:sudo apt install iftop libpcap-dev;CentOS/RHEL:sudo yum install iftop libpcap。
实操建议:
- 启动后按
P关闭端口解析(避免 DNS 查询拖慢响应),按h呼出帮助 - 按
o只显示当前窗口可见的连接,避免滚动过快丢失焦点 - 按
Shift+P切换是否显示端口号(默认显示),对识别服务类型很关键 - 注意它默认以字节/秒(B/s)为单位,顶部显示的
2.4KB是瞬时速率,不是累计值
nload 和 iftop 的底层差异影响你选哪个
两者原理不同:nload 读取 /proc/net/dev,只统计内核网络栈收发字节数,开销极小,适合长期挂后台;iftop 用 libpcap 抓原始数据包,能区分连接、协议、端口,但会引入轻微 CPU 开销,且可能漏掉本地回环或被防火墙 DROP 的包。
性能与兼容性要点:
- 在容器或低配 VPS 上优先用
nload,iftop在某些 OpenVZ 或 LXC 环境里根本起不来(缺少AF_PACKET权限) -
iftop -f 'port 80 or port 443'可过滤 HTTP/HTTPS 流量,但过滤越复杂,丢包率略升 - 两者都不支持历史回溯,要存日志得自己重定向输出或改用
vnstat
别忘了检查网卡标称带宽是否匹配实际用途
看到流量接近 100MB/s 就断定“跑满了”?不一定。用 ethtool ens33 看真实协商速率:Speed: 1000Mb/s 表示千兆全双工,理论最大吞吐是 125MB/s(=1000÷8),但 TCP/IP 开销会让持续传输上限约在 110–115MB/s 左右。如果 nload 显示长期稳定在 95MB/s,大概率是业务瓶颈,不是网卡问题。
容易被忽略的地方:
-
ethtool输出里的Duplex: Full必须为 Full,Half Duplex 会导致严重重传和性能塌方 - 虚拟机中看到
Speed: Unknown!是正常的,得查宿主机的物理网卡配置 - 云服务器(如阿里云 ECS)的“带宽”是公网出口限速,和内网网卡速率无关,
iftop在内网测不到这个限制











