当服务器网络出现异常延迟或流量突然飙升时,单靠 ping 或 netstat 往往难以快速定位是哪个连接占用了带宽。iftop 和 nload 是两个轻量级的终端工具,它们提供实时、直观的网络流量视图,让管理员立刻知道数据“从哪里来、到哪里去、有多大”。
iftop:按连接查看带宽占用
iftop 会在终端上按源/目的 IP 和端口,动态显示各连接的实时流量速率。它需要 root 权限来抓取网络接口数据。
基本用法:
sudo iftop -i eth0
-i 指定要监听的网卡,如果省略则监听系统默认接口。启动后,屏幕上会以列表形式展示最近 2 秒、10 秒、40 秒内的平均上传和下载速率。
界面解读与快捷操作:
- 列表顶部是总速率条,下面每行是一条连接记录,左侧为本机,右侧为远端,数据传输方向用箭头标示(
=>表示发送,<=表示接收)。 - 按下
p可以切换是否显示端口号,这在需要区分同一主机的多个服务时非常实用。 - 按下
s切换源 IP 显示,d切换目的 IP 显示。 - 按下
t切换显示样式:纯速率 / 累计流量 / 速率与累计混合。 - 按
j/k可以上下滚动列表,h显示帮助。
典型场景:
- 某个 Web 服务突然变慢,用
iftop查看,发现一个外部 IP 在大量下载静态资源,占满了出口带宽。 - NFS 或数据库复制流量异常增大,
iftop能立刻标出与存储节点或从库的同步连接消耗了多少带宽。
注意事项:
iftop需要系统已安装 libpcap,通常通过发行版包管理器直接安装(如apt install iftop)。- 它默认解析 IP 为域名,这可能变慢或产生额外 DNS 查询。在纯内网环境可按
n键关闭 DNS 解析,或启动时加-n参数。
nload:按接口查看总流量曲线
nload 提供的是一个更宏观的视角:它不区分单个连接,而是以接口为单位,用 ASCII 图形展示总流入和流出速率的分时曲线。
基本用法:
nload eth0
终端会被分成上下两半:上半部分为进入流量(Incoming),下半部分为流出流量(Outgoing)。每部分都有一个实时刷新的柱状图曲线,以及当前速率、平均速率、峰值速率、总传输量等数据。
实用功能:
- 通过左右方向键可以在多个网卡之间切换查阅。
- 按
F2打开选项窗口,可以调整刷新间隔和图形单位(如 KBits/s 还是 MBytes/s)。 - 按
q退出。
典型场景:
- 上线新服务后,快速确认网卡带宽是否饱和——
nload的曲线图非常直观。 - 复制大文件或数据库备份时,监控实际网络传输速度是否符合预期。
- 对比多块网卡的实时负载,判断是否需要启用绑定(bonding)或负载均衡。
优势与局限:
nload非常小巧,多数发行版可直接安装(apt install nload)。- 它仅展示接口汇总数据,不提供连接级详情,所以通常和
iftop或nethogs配合使用:先用nload发现整体异常,再用iftop深入排查具体连接。
两者选用建议
- 如果你怀疑某个特定 IP 或服务在抢占带宽,使用
iftop,它能立即呈现“谁在大量通信”。 - 如果你只是想看一眼网卡的总流量趋势,
nload更直接,启动快、显示清晰,适合放在后台持续监控。 - 故障排查实战中常联合使用:先用
nload确定网卡负载是否异常,再用iftop定位元凶连接,最后用ss或lsof将连接关联到具体进程。
这两个工具都不会长期记录历史数据,也无需复杂的配置,是 Linux 管理员工具箱中不可或缺的网络“听诊器”。