首页/系统/Linux 运维命令速查/nethogs 按进程看带宽
网络命令82 条

nethogs 按进程看带宽

找出「到底哪个进程在吃带宽」:按进程分组显示实时上下行速率,比 iftop 更贴排错需求。

Linux 运维命令速查系统更新于 2026-10-13

nethogs 是什么

系统带宽被吃满时,常规的网络统计只能告诉你哪个网卡忙,nethogs 能直接回答「哪个进程在吃带宽」:它按进程分组实时显示上行与下行速率,比看整体流量更贴近排错需求。查到嫌疑进程后,再用连接查看工具定位它具体连了谁,就能形成完整的证据链。它是基于抓包估算的实现,在转发与短连接场景下数值会明显偏差。

基本信息

适用平台GNU/Linux(需安装 nethogs,通常需要 root)
语法nethogs [选项] [接口]
常用选项-d 刷新秒数、-t 文本模式(适合记录)、-v 视图模式
交付形式交互界面与文本输出两种
依赖抓包权限(root 或相应能力)
衔接手段结合连接查看工具确认对端地址

典型使用场景

  • 找出占用带宽最多的进程,判断是业务流量还是异常外发。
  • 排查服务器上行异常:确认是否有未授权的数据外发。
  • 压测或批量任务期间观察各进程实际占用。
  • 记录一段时间内进程级带宽快照,用于事后分析。
  • 与连接列表对照,定位可疑连接的对端地址。

常用写法

常用写法
nethogs eth0                                  # 按进程看实时上下行
nethogs -d 1 -t eth0 | tee /tmp/nethogs.log   # 每秒一行文本快照,便于留档
nethogs -d 5                                  # 指定刷新间隔
ss -tp state established | head               # 查到进程后看它连了谁
wc -l /tmp/nethogs.log                        # 确认快照已写入

项目与现象读法

项目含义使用要点
进程级速率单个进程的上下行速率排错的核心信息
文本模式适合重定向与记录交互界面无法直接用管道保存
刷新间隔默认约 1 秒间隔太长会漏掉短时突发
抓包权限需要 root 或相应能力权限不足时无法启动
数值偏差基于抓包估算转发与短连接场景偏差较大
与连接对照结合连接列表看对端只靠速率无法定位对端地址
统计随进程重启归零,跨时段的总量它给不了:需要总量类指标时,间隔采样网卡统计做差更合适。
转发或地址转换场景下数值偏差明显,因为流量被多进程或多次计数;结论要结合连接列表一起看。
交互界面有快捷键可切换单位与视图,文本模式更适合脚本化记录与事后分析。

易错点

  • 用短时间采样就断定某进程异常,短连接与突发流量会造成明显误判;要观察一段时间并结合对端地址。
  • 无权限运行导致启动失败,误以为程序不存在或系统不支持;需要抓包权限。
  • 把基于抓包估算的速率当作精确计费依据,在转发场景下数值与实际流量差距很大。
  • 只看速率不看对端,找不到异常外发的目标地址;要结合连接列表完成定位。

数据来源与参考

  • man 8 nethogs(nethogs 官方文档)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌