NetHogs是一个小的"net top"工具。它没有像大多数工具一样按协议或每个子网划分流量,而是按进程对带宽进行分组。
Nethogs会按每个进程实时进出计算机的流量排序,很方便查看当前流量带宽使用最多的进程

Github仓库地址:https://github.com/raboof/nethogs

NetHogs 的最大好处在于它能按进程(Process)实时显示网络带宽占用情况,让你能快速、直接地揪出是哪个程序(或进程)吃光了你的网络带宽。

详细好处与优势

1. 基于进程,而非协议或连接(最核心的优势)

这是 NetHogs 与iftopnethogs等工具最根本的区别。

  • iftop:告诉你哪个IP连接(例如,与 151.101.1.69 的连接)占用了大量带宽。但你仍然需要再用sslsof命令来反查这个连接属于哪个进程。

  • nethogs:直接告诉你哪个进程(例如,firefoxchromebackup-script.py)占用了大量带宽。答案一目了然。

好处:极大地简化了故障排查流程,无需交叉引用其他工具,效率极高。

2. 实时监控,响应迅速

NetHogs 默认每秒刷新一次屏幕,提供了一个动态变化的视图,让你可以清晰地看到网络流量的瞬间波动。

好处:非常适合诊断突发性的网络流量激增问题。你可以在流量高峰时立即运行 NetHogs,亲眼看到是哪个进程突然开始“疯狂下载”或“疯狂上传”。

3. 无需特殊知识,直观易懂

它的界面非常简洁,输出信息对新手也足够友好。主要只显示三列信息:

  • PID:进程的ID号。

  • USER:运行该进程的用户。

  • PROGRAM:进程的名称或命令行。

  • DEV:使用的网络接口(如 eth0, wlan0)。

  • SENT:该进程的发送速率(上传)。

  • RECEIV:该进程的接收速率(下载)。

好处:即使你不熟悉复杂的网络协议(TCP/UDP)或端口号,也能轻松理解结果。你只需要寻找那个拥有异常高SENTRECEIV值的熟悉程序名。

4. 系统级监控,适用于所有用户和进程

NetHogs 通常需要sudo权限运行,因此它可以监控系统上所有用户启动的所有进程的网络活动,包括系统服务、后台守护进程等。

好处:无论是一个用户浏览器占用带宽,还是一个系统级的备份任务、恶意软件、错误的 cron 作业在偷偷上传数据,都逃不过它的眼睛

5. 轻量级,开销小

NetHogs 本身是一个非常小巧的工具,它只专注于“进程-网络”关系这一件事,不收集和分析额外的网络数据包。

好处:在服务器或资源有限的机器上运行它,几乎不会增加系统的额外负担,不会因为诊断工具本身而加剧网络拥堵。

经典应用场景

  1. 服务器响应突然变慢
    当你发现网站或服务器突然卡顿,怀疑是网络带宽被占满时,第一时间运行
    sudo nethogs,快速定位罪魁祸首。可能是某个失控的脚本、未授权的下载程序或正在拉取更新的应用。

  2. 排查异常网络流量(安全审计)
    怀疑服务器是否有中毒或被入侵?是否有挖矿木马或后门程序在偷偷与外网通信?运行 NetHogs,检查是否有未知的、奇怪的进程在持续上传或下载数据。

  3. 诊断备份或数据同步任务
    如果你在服务器上运行了备份任务(如
    rsync,taroverssh),可以使用 NetHogs 来实时监控该进程的网络速度和总量,直观地了解备份进度和对网络的影响。

  4. 限制“带宽大户”
    当你发现是某个特定程序(如
    steambittorrent客户端)占用了所有带宽,你就可以有针对性地对其进行限制(使用wondershapertrickle等工具)或安排其在非高峰时段运行。

安装

# Debian/Ubuntu
sudo apt install nethogs

# RHEL/CentOS/Fedora
sudo yum install nethogs    # 或者使用 dnf

使用方法

# 监控默认网络接口(通常是 eth0)
sudo nethogs

# 监控指定网络接口(例如监控Wi-Fi网卡wlan0)
sudo nethogs wlan0

# 设置刷新频率(例如每5秒刷新一次)
sudo nethogs -t -d 5

参考链接:https://mp.weixin.qq.com/s/voVPGlfUCICvc8oBXpSTMg