NetHogs 进程网络流量监控
NetHogs 是一款按进程分组显示网络带宽使用情况的监控工具。与 iftop 按 IP/连接显示流量不同,NetHogs 直接告诉你哪个进程在消耗带宽。在搬瓦工 VPS 上,当你发现流量异常消耗或带宽被占满时,NetHogs 可以让你在几秒钟内找到罪魁祸首。搬瓦工每月流量有限,及时发现异常流量非常重要。
一、安装
# Ubuntu / Debian
apt update
apt install nethogs -y
# CentOS / RHEL
yum install nethogs -y
# 验证安装
nethogs -V
二、基本用法
# 监控默认网络接口
nethogs
# 指定网络接口
nethogs eth0
# 监控多个接口
nethogs eth0 eth1
# 设置刷新间隔(秒)
nethogs -d 2
# 不解析主机名(更快)
nethogs -v 0
三、交互操作
NetHogs 运行时支持以下快捷键:
- m:切换显示单位(KB/s, KB, B, MB)
- r:按接收流量排序
- s:按发送流量排序
- q:退出
四、输出说明
NetHogs 的输出包含以下列:
- PID:进程 ID
- USER:运行进程的用户
- PROGRAM:程序名称和路径
- DEV:网络接口
- SENT:发送速率
- RECEIVED:接收速率
五、批量模式(脚本集成)
# 批量模式输出(适合管道和日志记录)
nethogs -t eth0
# 批量模式,指定刷新间隔和次数
nethogs -t -d 5 -c 10 eth0
# 记录到日志文件
nethogs -t -d 10 eth0 > /var/log/nethogs.log 2>&1 &
# 解析批量输出
nethogs -t -d 5 -c 1 eth0 2>/dev/null | awk -F'/' '{
if ($0 ~ /\//) print $0
}'
六、实际应用场景
6.1 流量异常排查
# 发现流量异常时,立即运行
nethogs eth0
# 如果发现某个进程消耗大量带宽,获取详细信息
# 记下 PID,然后查看进程详情
ps aux | grep PID
ls -l /proc/PID/exe
cat /proc/PID/cmdline
# 查看进程的网络连接
ss -tnp | grep PID
netstat -tnp | grep PID
6.2 流量监控告警脚本
#!/bin/bash
# 检测高流量进程并告警
THRESHOLD=1024 # KB/s
LOG="/var/log/nethogs-alert.log"
nethogs -t -d 10 -c 1 eth0 2>/dev/null | while IFS=$'\t' read -r PROG SENT RECV; do
if [ -n "$SENT" ] && [ -n "$RECV" ]; then
TOTAL=$(echo "$SENT + $RECV" | bc 2>/dev/null)
if [ -n "$TOTAL" ] && (( $(echo "$TOTAL > $THRESHOLD" | bc -l 2>/dev/null) )); then
echo "[$(date)] 高流量: $PROG 发送=${SENT}KB/s 接收=${RECV}KB/s" >> "$LOG"
fi
fi
done
6.3 搬瓦工流量管理
搬瓦工 VPS 每月有流量限制,合理监控流量使用非常重要:
# 查看当前月度流量使用(通过搬瓦工 API,使用 bwh81.net)
curl -s "https://api.64clouds.com/v1/getLiveServiceInfo?veid=YOUR_VEID&api_key=YOUR_KEY" | \
jq '{used_gb: (.data_counter / 1073741824), total_gb: (.plan_monthly_data / 1073741824)}'
# 定期检查哪些进程消耗流量最多
nethogs -t -d 60 -c 1 eth0 2>/dev/null | sort -t$'\t' -k2 -rn | head -10
七、与其他网络监控工具对比
- NetHogs vs iftop:NetHogs 按进程分组,iftop 按连接/IP 分组。两者互补使用效果更好。
- NetHogs vs nload:nload 只显示接口总流量,不区分进程。
- NetHogs vs bmon:bmon 专注于接口级别的带宽统计,不提供进程信息。
- NetHogs vs ss/netstat:ss 显示连接状态,不显示实时流量速率。
八、常见问题
# 权限不足
# NetHogs 需要 root 权限
sudo nethogs
# 接口名称不确定
ip link show
# 或
ifconfig
# 无法捕获流量
# 确认 libpcap 已安装
apt install libpcap-dev -y
总结
NetHogs 是排查网络流量异常的利器,能够直接定位到消耗带宽的进程。在搬瓦工 VPS 上,由于每月流量有限,及时发现异常流量消耗尤为重要。建议配合 Iftop 网络流量监控 一起使用:先用 iftop 观察整体流量分布,再用 NetHogs 定位具体进程。选购搬瓦工 VPS 请参考全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 循环折扣。