系统资源监控的重要性
在Linux系统中,网络流量和进程资源管理是系统管理员和开发者的核心任务之一,当系统出现网络拥堵、进程异常占用带宽时,快速定位问题源头至关重要,传统的工具如iftop或netstat虽然能提供网络流量概览,但无法直接关联到具体进程,而nethogs作为一款轻量级进程级网络监控工具,以其简洁的界面和精准的进程流量统计能力,成为Linux系统下网络问题排查的利器,本文将详细介绍nethogs的原理、功能、使用方法及实际应用场景。

nethogs的核心功能与优势
nethogs的设计初衷是实时监控每个进程的网络带宽使用情况,并以清晰的方式展示进程名称、PID(进程ID)、协议类型(TCP/UDP)以及实时上传/下载速度,与同类工具相比,nethogs的核心优势在于:
- 进程级精准定位:直接将网络流量与进程绑定,避免传统工具只能显示IP和端口的局限性。
- 轻量高效:基于
libpcap库实现,资源占用极低,即使在低配置服务器上也能流畅运行。 - 实时动态更新:默认每秒刷新数据,支持动态排序(按流量大小),帮助快速定位高负载进程。
- 跨协议支持:同时监控TCP和UDP流量,区分IPv4和IPv6连接,覆盖主流网络场景。
安装与配置
nethogs的安装方式因Linux发行版而异,主流系统均提供便捷的包管理安装方式。
基于Debian/Ubuntu系统
使用apt安装:
sudo apt update sudo apt install nethogs
基于RHEL/CentOS系统
使用yum或dnf安装:
sudo yum install nethogs # CentOS 7及以下 sudo dnf install nethogs # Fedora/CentOS 8+
从源码编译安装
若发行版未预编译包,可从GitHub获取源码安装:
git clone https://github.com/raboof/nethogs.git cd nethogs make && sudo make install
依赖检查
nethogs依赖libpcap和libncurses库,若安装时报错,需手动补充依赖:
# Debian/Ubuntu sudo apt install libpcap-dev libncurses-dev # RHEL/CentOS sudo yum install libpcap-devel ncurses-devel
基本使用方法
nethogs的命令行选项简洁直观,通过基础命令即可快速上手。

启动默认监控
直接执行nethogs命令,默认监控所有网络接口,并以交互式界面展示:
sudo nethogs
(需root权限,因为网络监控需要访问原始套接字)
指定网络接口
若只想监控特定接口(如eth0或wlan0),使用-i参数:
sudo nethogs -i eth0
非交互式模式
在脚本或日志记录场景中,可通过-t(tracing)参数输出非交互式文本流:
sudo nethogs -t > nethogs.log
排序与过滤
- 按流量排序:默认按下载速度排序,按
d键切换为上传排序,按t键切换为总流量排序。 - 过滤进程:通过
-p参数显示PID和UID,便于结合ps命令进一步分析:sudo nethogs -p
界面解读与操作
nethogs的交互式界面分为三部分:顶部标题栏、中部进程列表、底部操作提示。
进程列表字段说明
- PID:进程ID,可通过
kill命令终止进程。 - USER:进程所属用户。
- PROGRAM:进程名称(如
chrome、nginx)。 - DEV:网络接口名称(如
eth0、lo)。 - SENT:当前进程上传速度(单位KB/s)。
- RECEIVED:当前进程下载速度(单位KB/s)。
常用交互命令
q:退出程序。s:切换“累计/实时”流量模式(默认实时)。c:清空统计数据。k:终止选中进程(需谨慎操作)。
实际应用场景
定位异常网络进程
当服务器出现网络卡顿时,运行nethogs可快速发现异常进程。
sudo nethogs
若发现某个未知进程(如malware)持续占用高带宽,可立即终止:

sudo kill -9 <PID>
优化应用性能
对于Web服务器(如nginx),通过nethogs监控连接数和流量分布,可识别慢请求或资源泄露问题,若发现php-fpm进程流量异常,可能需要优化脚本逻辑或调整php-fpm配置。
网络故障排查
当用户反馈“访问网站慢”时,可通过nethogs检查本地进程是否异常占用带宽,若apt或yum更新进程持续下载,可暂停更新以临时恢复网络性能。
安全审计
结合ps和nethogs,可检测可疑进程的网络行为,非root进程监听高危端口或与未知IP通信,可能暗示被入侵,需进一步分析。
高级技巧与注意事项
结合其他工具使用
- 与
iftop对比:iftop显示IP层面的流量,nethogs聚焦进程,两者结合可快速定位“哪个IP的哪个进程”异常。 - 与
logrotate配合:长期监控时,通过logrotate管理nethogs日志,避免日志文件过大。
注意事项
- 权限要求:必须使用
root运行,否则无法获取原始网络数据。 - 性能影响:在高并发场景下,
nethogs的刷新频率可能影响系统性能,可通过-d参数调整刷新间隔(如-d 2表示每秒刷新2次)。 - IPv6支持:部分旧版本
nethogs对IPv6支持有限,建议使用最新版本(从GitHub源码编译)。
nethogs凭借其简洁的设计和精准的进程级网络监控能力,成为Linux系统下网络问题排查的必备工具,无论是系统管理员定位异常进程,还是开发者优化应用性能,nethogs都能提供直观、高效的数据支持,通过掌握其安装、配置和高级用法,用户可以快速响应网络故障,保障系统的稳定运行,在日常运维中,建议将nethogs与iftop、netstat等工具结合使用,构建全方位的网络监控体系。

















