用nload看总吞吐量最省心,它读/proc/net/dev零干扰;iftop查IP/端口流量需sudo和-nN参数;nethogs精准归因到进程;vnstat长期记录不丢数据,需先sudo vnstat -u -i eth0初始化。

想一眼看清网卡总吞吐量,用 nload 最省心
它不抓包、不解析连接、不关进程,直接读 /proc/net/dev,零干扰、低开销,适合日常巡检或VPS快速摸底。
- 运行
nload默认监控第一个非回环网卡(如eth0或ens33),按左右方向键切换接口 - 加
-u M以 Mbps 显示,比默认的 KB/s 更符合带宽认知(nload -u M) - 别用
nload -m同时看多个接口——界面会挤,且各接口刷新不同步,容易误判峰值是否叠加 - 注意单位陷阱:
nload的M是兆比特(Mb),不是兆字节(MB);100 Mbps ≈ 12.5 MB/s,别拿它直接对比磁盘写入速度
要定位是哪个 IP 或端口在吃带宽,iftop 是首选
它基于 libpcap 抓包统计,能实时显示每个活跃连接的收发速率,但代价是需 root 权限、有轻微性能开销,且无法关联到进程名。
- 必加
-n(禁DNS解析)和-N(显端口号),否则卡顿+信息冗余:sudo iftop -n -N - 查某网段流量?用
-F:例如sudo iftop -n -N -F 192.168.1.0/24 - 看到异常 IP 后别手抖封禁——先确认是否是云厂商健康检查、CDN 回源或合法爬虫;盲目
iptables -A INPUT -s x.x.x.x -j DROP可能误杀 -
TX和RX列单位是 KB/s 或 MB/s,顶部第二行的tot是当前总带宽,不是峰值
想知道“哪个程序”在疯狂发包,nethogs 不可替代
iftop 看不到进程,sar 只给总量,只有 nethogs 能把流量精确归因到 PID 和命令名,排查后台代理、P2P 下载、日志上报泄露最有效。
- 必须用
sudo,否则看不到其他用户进程:sudo nethogs eth0 - 按
m键切换单位,推荐用KB/s(默认),太小的流量在MB/s下直接显示为 0 - 如果界面空白或只显示
unknown TCP,大概率是容器环境或 systemd socket 激活服务——这些进程的网络命名空间可能未被正确识别 - 注意:Java 应用常以
java统一显示,需结合ps aux --forest查 PID 对应的启动参数
需要长期记录或查历史流量,vnstat 是唯一轻量靠谱的选择
它不依赖实时抓包,而是轮询内核计数器,重启不丢数据,资源占用几乎为零,适合 7×24 部署。但首次使用前必须初始化数据库。
- 装完先绑定网卡:
sudo vnstat -u -i eth0(否则vnstat会报错 “No database found”) - 查今日流量:
vnstat -d;查当月:vnstat -m;查实时速率(近似):vnstat -l - 它默认每 5 分钟采样一次,所以
vnstat -l显示的“实时”其实是最近 2 分钟平均值,别拿它对标nload的瞬时波动 - 若系统时间跳变(如 NTP 校正或手动改时),旧数据时间戳可能错乱,
vnstat -u重刷即可,无需重建库
真正难的不是命令怎么敲,而是分清「此刻谁在传」「过去三天谁传得最多」「这个流量算不算异常」——三个问题对应三类工具,混用或漏用都会导致判断偏差。比如只看 nload 总量正常,就忽略 nethogs 里某个 Python 脚本每小时打 20GB 日志到远端,这种问题不会自己浮出水面。

















