最直接有效的方法是使用nethogs——它专为按进程维度监控实时网络流量而设计,能清晰列出每个进程的发送(TX)和接收(RX)速率,并按带宽占用从高到低排序;安装后需root权限运行,支持指定网卡,但默认不监控本地IPC及短连接爆发。

最直接有效的方法是使用 nethogs —— 它专为按进程维度监控实时网络流量而设计,能清晰列出每个进程的发送(TX)和接收(RX)速率,并按带宽占用从高到低排序。
安装并运行 nethogs
它不依赖全局接口统计,而是通过抓取 socket 连接追踪到具体进程(PID、用户、命令路径),适合快速定位“谁在疯狂发包”或“哪个服务偷偷上传”:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- CentOS/RHEL:`sudo yum install -y nethogs`
- Ubuntu/Debian:`sudo apt-get install -y nethogs`
- 启动监控(需 root 权限):`sudo nethogs`
- 指定网卡(如只看外网流量):`sudo nethogs eth0`
补充方案:结合 iftop + ps 定位进程
如果 nethogs 不可用,可用 iftop 查连接,再反查进程:
- 运行 `sudo iftop -P` 显示端口,记下高流量连接的端口号
- 用 `sudo lsof -i :端口号` 或 `sudo ss -tulpn | grep :端口号` 查对应 PID 和程序名
- 例如:`sudo ss -tulpn | grep ':8080'` 可看到监听 8080 的 java 进程及其 PID
注意关键限制
nethogs 默认只监控活跃的 TCP/UDP 连接,对纯本地 IPC(如 Unix socket)、DNS 缓存查询或短连接爆发可能有短暂延迟;它也不显示已关闭但尚未释放的连接残留。若需更底层细节(如包级行为),需配合 tcpdump 抓包分析。

















