按连接和进程看流量
无图形界面的服务器上,只知道网卡总流量常常不够:还需要定位「是谁占用了带宽」。nethogs 按进程聚合流量,iptraf-ng 按连接与端口统计,正好补上总量工具看不到使用者的短板,备份异常、镜像拉取拖慢业务时最常用。
基本信息
| 用途 | 按连接或进程查看网络流量 |
|---|---|
| 常用命令 | nethogs [接口]、nethogs -t -d 2(追踪模式) |
| 相关工具 | iptraf-ng、iftop |
| 权限 | 抓包类工具通常需要 root |
典型使用场景
- 备份或同步任务突然吃满带宽,定位是哪个进程
- 容器宿主机上找出流量异常的容器网卡
- 排查异常外联:哪个进程在持续连接外部地址
- 与套接字视图结合,确认连接归属与状态
- 上传下载并发场景下的流量占比分析
- 没有集中监控的机器上做临时观测
常用示例
常用示例
nethogs eth0 # 按进程查看实时流量
nethogs -t -d 2 # 追踪模式,适合重定向到文件
iftop -i eth0 # 按连接对查看双向流量
ss -tnp | head -20 # 查看连接与所属进程
ss -tnp state established '( dport = :443 )' | head # 过滤特定目标端口
iptraf-ng # 交互式连接级统计
cat /proc/net/dev # 网卡级总量,作为对照基线工具对照
| 工具 | 视角 | 适用场景 |
|---|---|---|
| nethogs | 按进程聚合 | 定位是谁占用带宽 |
| iftop | 按连接对 | 看与哪个对端流量最大 |
| iptraf-ng | 按连接与端口 | 无图形环境的连接统计 |
| ss | 套接字与进程 | 确认连接归属与状态 |
| /proc/net/dev | 网卡总量 | 作为对照基线 |
nethogs 依赖抓包机制,高流量场景下它自身也会消耗可观的 CPU:恰恰在流量很高的时候,用它排查要留意观测开销。
容器场景下在宿主机抓包无法直接映射到容器的进程号:需要结合 cgroup 与网络命名空间综合判断,否则容易指认错对象。
排查顺序上,先用总量工具确认异常确实存在,再用按进程或按连接的工具定位来源;顺序颠倒会浪费大量时间去追不存在的问题。