首页 帮助中心 Linux进程网络流量如何进行监控(详细指南)
Linux进程网络流量如何进行监控(详细指南)
时间 : 2025-07-08 15:36:40 编辑 : 华纳云 阅读量 : 6

网络流量监控是保障系统稳定、安全运行的重要组成部分。特别是在Linux系统中,当某个进程异常占用带宽、发生大规模上传下载或与未知外部IP频繁交互时,若无法准确判断流量来源,就可能导致系统卡顿、业务中断,甚至数据泄露。因此,学会监控Linux中单个进程的网络流量,是系统管理员和运维工程师必须掌握的技能。

一、为什么要监控进程级网络流量

在传统的网络流量分析中,多数运维人员关注的是网卡整体流量(如eth0的上下行速率),但这类监控只能看出“哪台机器”的流量高,无法深入到“哪个程序/服务”造成的。

只有监控到进程级别,才能知道哪个进程在偷偷上传大量数据?系统带宽被打满时是哪个程序在大量下载?某个监听端口异常活跃是哪个服务负责的?是否存在未知进程在与外部IP通信?

进程级流量监控可用于流量审计、安全排查、服务性能优化、异常检测等多个领域。

二、监控进程网络流量的常用工具

在Linux环境中,想要实现对单个进程网络流量的精准监控,推荐使用以下工具组合:

工具名称 功能作用 是否支持实时显示 是否跨发行版
nethogs 显示每个进程的实时上传下载速率
iftop 实时显示连接(IP对)的流量 否(不显示进程)
iptraf-ng 基于接口监控流量协议与端口
ss + lsof 查看网络连接与进程绑定关系
netstat + ps 传统组合,辅助排查
bmonvnstat 总体流量监控
pidstat 监控进程资源使用情况(带网络)
systemtap / eBPF 内核级网络活动监控 高级用户

三、核心工具一:nethogs 进程级流量监控神器

1. 安装方式

对于Debian/Ubuntu系统:

sudo apt update
sudo apt install nethogs

对于CentOS/RHEL:

sudo yum install epel-release -y
sudo yum install nethogs -y

2. 基本用法

运行以下命令即可:

sudo nethogs eth0

其中 eth0 是你的网络接口名称,可通过 ip addr ifconfig 查看当前网卡。

运行结果中将显示每个进程(包含PID)对应的上传(sent)与下载(received)速率。

3. 支持多网卡监控

sudo nethogs eth0 eth1

4. 交互式快捷键说明

m 切换显示速率单位(KB/s、B/s)

r 重排序

q 退出

nethogs 不适合长期统计,但用于排查短期异常流量来源极其高效。

四、辅助工具二:iftop 查看连接对的实时流量

尽管 iftop 不显示进程名,但它能查看“IP对”之间的上下行速率,有助于从连接角度定位可疑来源。

安装方式

Ubuntu/Debian:

sudo apt install iftop

CentOS:

sudo yum install iftop

运行命令:

sudo iftop -i eth0

可以观察每个IP对的上传(TX)与下载(RX)流量,按 t 键切换统计时间段。

当你在 nethogs 中看到某进程占用大流量时,再用 iftop 查看其连接对象,能实现双向验证。

五、查看连接详情并映射进程:ss + lsof

当需要进一步追踪某个具体连接属于哪个进程时,可使用 ss 命令查看TCP/UDP连接,再用 lsof 查出对应进程。

示例:

sudo ss -tunap

输出中将显示:

  • 本地地址与端口
  • 远程地址
  • 状态(ESTAB、LISTEN等)
  • 进程PID与名称(users:(("nginx",pid=1234,fd=3)))

或者直接使用 lsof -i 查看端口与PID映射:

sudo lsof -i -nP | grep ESTABLISHED

结合 ps -p PID -f 可查看该进程详细信息。

六、用pidstat监控特定进程的网络IO行为

pidstat 属于 sysstat 工具集,是系统级资源监控利器。

安装:

sudo apt install sysstat # Debian/Ubuntu
sudo yum install sysstat # CentOS

监控命令:

pidstat -d -h -p 1

虽然 pidstat 更偏向磁盘IO,但结合 netstat -p 可判断该PID是否存在持续连接状态,从而间接推断流量使用情况。

七、高级方式:eBPF 和 systemtap 内核级流量追踪

在高性能场景中,需要使用内核探针技术(如eBPF)实现对特定进程网络行为的精确捕捉。

推荐工具:

bcc 套件中的 tcpconnect, tcpdump, tcptracer 等;

bpftrace:适用于简单自定义探针;

systemtap:适用于高负载高性能服务器;

这类技术虽然强大,但学习门槛较高,适合高级用户或安全研究人员使用。

八、持续统计与报告:vnstat + cron结合

若希望生成长期流量报告,可用 vnstat:

sudo apt install vnstat
sudo vnstat -u -i eth0

定期通过 cron 执行 vnstat 并保存到日志,结合日志分析工具,可形成进程与流量的长期关联数据。

Linux系统强大的网络工具生态,使得进程级流量监控变得可行且高效。从 nethogs 的实时展示,到 ss+lsof 的连接追踪,再到 iftop 的带宽观察,这些工具组合可帮助运维人员精准识别出问题进程,迅速处理异常网络行为。建议运维人员结合自身业务情况选择合适工具,养成定期巡检的好习惯,防患于未然。

华纳云 推荐文章
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持