nload 看网卡总流量、nethogs 按进程定位带宽
更新时间:2026-09-19。两个工具组合回答网络带宽问题的前两步:nload 看「网卡有多大流量、入还是出」,nethogs 看「是哪个进程在用」。要进一步看到具体远端连接,用 iftop。
一、nload:网卡速率仪表盘
bash
nload # 默认监控所有网卡,左右方向键切换
nload eth0 # 只看某网卡
nload -u M # 单位 MByte/s(默认 MBit/s),-u m=MBit, M=MByte
nload -t 500 # 刷新间隔 500ms(毫秒)
nload -m # 多网卡同时显示(不切换)界面分 Incoming(入站)/ Outgoing(出站):
| 字段 | 含义 |
|---|---|
| Curr | 当前速率 |
| Avg | 平均速率 |
| Min/Max | 区间最小/最大 |
| Ttl | 累计流量 |
用途:一眼判断「现在是不是真的打满带宽」「流量主要是入还是出」。比如异常的出站持续高峰可能是数据外传或日志狂发。阈值报警可在配置里设置,超过速率高亮。
二、nethogs:带宽归到进程
nload/iftop 只看主机或连接,nethogs 直接把带宽算到进程/PID,类似网络版的 top:
bash
sudo nethogs # 自动选网卡,按进程列出
sudo nethogs eth0
sudo nethogs -d 2 # 2 秒刷新
sudo nethogs -t # 纯文本/trace 模式(可输出到日志/脚本)
sudo nethogs -c 5 -t # 刷新 5 次后退出(采集用)输出列:PID USER PROGRAM SENT RECEIVED,按实时速率排序,直接看到是 java、mysqld 还是某个脚本在大量收发。这对下面几类问题极有用:
三、排障组合
bash
nload → 网卡总速率异常(入/出方向)
↓
nethogs → 定位到具体进程 PID
↓
iftop / ss → 该进程具体连了哪些远端 IP:端口、速率多少
↓
tcpdump → 需要内容时抓包| 工具 | 回答 |
|---|---|
| nload | 网卡总流量多大、入还是出 |
| nethogs | 哪个进程在用带宽 |
| iftop | 哪些主机对/连接在传 |
| ss | 连接状态、重传、缓冲、进程对应 |
坑
- nethogs 需要 root(读 /proc 与连接表),普通用户没数据。
- nload 默认单位是 bit/s,和常说的「字节/秒」差 8 倍,看数字前先确认单位(
-u M切字节)。 - 多网卡机器没指定设备,看的可能不是业务网卡,先
ip addr确认。 - 容器内进程在宿主上 nethogs 可能只显示 containerd/共享网络的 PID,需要进容器或结合 cgroup 判断。
总结
nload 用大仪表盘实时展示网卡 Incoming/Outgoing 的当前、平均和峰值速率,用于快速判断带宽是否被打满及流量方向;nethogs 则按进程 PID 实时统计 SENT/RECEIVED,把带宽占用直接归到具体程序,是定位异常外连和后台大流量任务的关键一步;二者加上看连接的 iftop、看状态的 ss 构成从网卡到进程再到对端的完整网络排障路径,使用时注意 root 权限、bit/byte 单位和正确选择网卡。