查看进程网络流量的方法取决于操作系统,以下是主流系统的常用方法:
Linux 系统
1. nethogs(最直观)
# 安装
sudo apt install nethogs # Debian/Ubuntu
sudo yum install nethogs # RHEL/CentOS
# 使用(需要root权限)
sudo nethogs
# 或监控特定网卡
sudo nethogs eth0
2. iftop(按流量排序)
# 安装
sudo apt install iftop
# 使用
sudo iftop -P
# 按 p 显示端口,按 P 显示进程
3. nload + ss/netstat
# 查看总体流量
nload
# 查看进程连接
ss -tunap | grep 进程名
# 或
netstat -tunap | grep 进程名
4. systemd-cgtop(systemd系统)
systemd-cgtop
# 按 n 切换网络统计
Windows 系统
1. 任务管理器
- Ctrl+Shift+Esc 打开任务管理器
- 点击"性能"选项卡 → 打开"资源监视器"
- 在"网络"选项卡中查看各进程流量
2. 资源监视器
- Win+R 输入
resmon.exe - 直接查看"网络"部分的进程流量
3. Process Explorer(微软官方工具)
- 下载地址:https://docs.microsoft.com/sysinternals
- 查看列中添加"Network Send/Receive"显示流量
4. PowerShell
# 查看当前网络连接
Get-NetTCPConnection | Select-Object LocalAddress,LocalPort,OwningProcess
# 结合进程名
Get-Process | Where-Object {$_.Id -eq 进程ID}
macOS 系统
1. 活动监视器
- 打开"活动监视器"
- 点击"网络"选项卡查看流量
2. nettop(命令行)
# 实时监控
sudo nettop -P
# 监控特定进程
nettop -p 进程ID
3. lsof + 网络统计
# 查看进程打开的网络连接
lsof -i -P | grep 进程名
跨平台工具
bmon、bwm-ng
# 安装 bwm-ng
sudo apt install bwm-ng
# 使用
bwm-ng
持续监控和记录
使用 vnStat + 进程关联
# 安装 vnStat
sudo apt install vnstat
# 配置监控(需要额外脚本关联进程和流量)
自定义脚本示例
#!/bin/bash
# 监控特定进程的流量
PID=$(pgrep 进程名)
if [ -n "$PID" ]; then
cat /proc/$PID/net/dev
fi
专业监控工具
- Wireshark:深度包分析,可过滤特定进程流量
- ntopng:专业的网络流量监控
- Prometheus + Node Exporter:企业级监控方案
快速诊断技巧
-
找出高流量进程:
# Linux 快速检查 sudo ss -tunap | awk '{print $6}' | cut -d: -f1 | sort | uniq -c | sort -n -
实时监控特定端口:
# 监控 80 端口的流量 sudo tcpdump -i any port 80 -nn
选择哪种方法取决于:
- 是否需要实时监控
- 是否需要历史数据
- 系统权限级别
- 用户界面偏好(CLI 或 GUI)
对于日常使用,Linux 推荐 nethogs,Windows 推荐资源监视器,macOS 推荐活动监视器。
CLOUD技术笔记