网络流量查看命令
glances、dstats、nethogs、iftop
在 Linux 中查看网络流量,可以根据你的需求维度(实时带宽监控、进程级流量分析、历史流量统计)选择不同的工具。
以下是按照从“宏观”到“微观”的顺序整理的常用命令:
1. 宏观实时监控(看网卡总带宽)
这类工具适合快速查看服务器当前的总流入(In)和流出(Out)速度。
-
**sar**(System Activity Reporter) -
命令:
sar -n DEV 1 5 -
用途: 每秒统计一次所有网卡的流量,连续 5 次。这是最权威的系统级统计。
-
**bmon**(Bandwidth Monitor) -
特点: 界面非常直观,带有简易的 ASCII 折线图。
-
安装:
sudo apt install bmon -
**nload** -
特点: 像汽车仪表盘一样,分别显示入站和出站流量的当前值、平均值和最大值。
2. 进程级监控(看谁在偷跑流量)
当你发现带宽异常升高,想揪出是哪个程序在疯狂下载时,这两个工具是首选。
-
**iftop**(像 top 一样看流量) -
命令:
sudo iftop -P -
特点: 实时列出消耗流量的 IP 对(Source <> Dest)。配合
-P可以显示端口。 -
**nethogs**(按进程分组) -
命令:
sudo nethogs -
特点:****最推荐! 它不按 IP 排行,而是直接按**进程名(PID)**排行。一眼就能看到是
nginx、java还是某个恶意脚本占用了带宽。
3. 详细会话监控(看连接细节)
-
**iptraf-ng** -
特点: 交互式菜单界面,可以查看具体的连接协议(TCP/UDP)、包大小分布等,适合排查网络异常。
4. 历史流量统计(看昨天/本月用了多少)
如果你想知道服务器这个月一共跑了多少流量(防止超支),需要这些带数据库功能的工具。
-
**vnstat** -
特点: 轻量级后台服务。安装后会自动记录每天、每月的流量总额。
-
查看:
vnstat -d(按天查看),vnstat -m(按月查看)。
总结对照表
| 需求场景 | 推荐命令 | 关键优势 |
|---|---|---|
| 快速看总带宽 | nload<br>/ sar |
无需配置,直观简单 |
| 找出流量最高的进程 | nethogs |
直指源头(按 PID 分类) |
| 查看具体的 IP 连接 | iftop |
查明是在和哪个外部 IP 通信 |
| 审计月度/年度流量 | vnstat |
带有数据持久化功能 |
| 深度协议抓包 | tcpdump |
看到每一个字节的细节 |
💡 小技巧:不安装工具怎么看?
在没有任何第三方工具的服务器上,你可以直接读取系统内核文件:
watch -n 1 "cat /proc/net/dev"
这个文件记录了网卡自启动以来的累计字节数,通过 watch 每秒刷新,你自己心算一下差值就能得出即时带宽。
