- 移动开发
- 开发工具
【免费下载链接】ZeroTermux
NetHogs 是一款"按进程统计"的网络带宽监控工具,与 iftop(按接口)、netstat(按连接/接口统计)、top(按 CPU/内存)互补,专门回答"到底是哪个进程在偷偷吃满带宽"这一类问题。本篇文章基于 ZeroTermux 内置命令手册 nethogs.md 展开,覆盖 NetHogs 的安装、启动、命令行参数、交互快捷键与底层原理,并说明该手册在 ZeroTermux 中是如何被内置终端查阅与渲染的,读完即可上手定位"跑飞"的进程。
NetHogs 是什么
NetHogs 是一个开源的命令行工具,形态上与 Linux 的top类似,但统计维度不是 CPU 或内存,而是按进程(program / process)实时统计网络带宽使用率。来自 NetHogs 项目官网的定位如下:
NetHogs 是一个小型的 net top 工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度,而是按照进程进行带宽分组。NetHogs 不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞,你可以启动 NetHogs 立即看到是哪个 PID 造成的这种状况,这样就很容易找出哪个程序跑飞了然后突然占用你的带宽。
这段话包含了两个关键事实:
- 按进程分组而非按协议/子网分组:传统工具(如 iftop)展示的是接口或连接级别的流量,而 NetHogs 直接聚合到 PID/进程名;
- 无需特殊内核模块:它依赖的是系统已有的网络与进程数据来源,因此安装与运行门槛很低,普通发行版仓库即可提供。
与其它网络监视工具的定位差异
Linux 下网络监视工具非常多,各自解决不同的问题:
| 工具 | 统计维度 | 典型问题 |
|---|---|---|
iftop | 按接口/连接 | 网卡上哪条连接在占用带宽 |
netstat/ss | 接口统计、连接状态 | 接口收发统计、连接状态报告 |
top | CPU / 内存 | 系统当前运行进程的资源占用 |
| NetHogs | 按进程(PID) | 哪个进程在实时占用带宽 |
ZeroTermux 内置命令手册中同样收录了 netstat.md、ss.md、watch.md、dstat.md 等网络与性能监控文档,可与 NetHogs 配合使用:先用nethogs定位异常进程,再用netstat/ss查看该进程建立的连接,最后用watch周期性刷新验证流量是否回落。
在 ZeroTermux 中如何查阅本手册
本文档实际存放在 app/src/main/assets/cmd/nethogs.md,属于 ZeroTermux 内置的"命令手册"资源之一。从源码结构看,CommandDialog.java 负责加载并展示这些手册:
- 通过
AssetManager.list("cmd")枚举assets/cmd/目录下的全部命令文档,填充到命令列表(见 CommandDialog.java); - 顶部搜索框通过
contains模糊匹配过滤命令名(见 CommandDialog.java); - 点击某条命令后,通过
assetManager.open("cmd/<命令名>")读取对应 Markdown 文件,使用 commonmark 的Parser+HtmlRenderer渲染为 HTML,再交由WebView展示(见 CommandDialog.java),WebView 开启了单列排版与缩放支持,便于在手机上阅读。
因此,本文介绍的所有命令都可在 ZeroTermux 内置的命令手册对话框中直接搜索nethogs查阅;实际操作则需在 ZeroTermux 内置终端或所运行的 Linux 环境中执行。
安装 NetHogs
NetHogs 已进入各大主流发行版的软件仓库,安装方式取决于你的 Linux 发行版。
在 RHEL、CentOS 和 Fedora 下安装
在这些发行版上安装 NetHogs,必须先启用 EPEL 源(Extra Packages for Enterprise Linux),然后使用yum安装:
# yum install nethogs如果你的系统使用的是较新的dnf(如 RHEL 8+、Fedora 较新版本),同样遵循"先启用 EPEL、再安装"的流程,将yum换成dnf即可。
在 Ubuntu、Linux Mint 和 Debian 下安装
Debian 系发行版直接使用apt安装:
$ sudo apt-get install nethogsUbuntu 12.10 及之后的版本都已在官方软件源中收录 NetHogs,无需额外添加 PPA。
NetHogs 基本用法
启动 NetHogs
基于 RedHat 系的系统(root 或具备权限的用户)直接运行:
# nethogsDebian/Ubuntu/Linux Mint 下必须拥有 root 权限:
$ sudo nethogs界面解读
启动后,NetHogs 会在终端中呈现一张类似top的动态列表:
- send 列与 received 列:分别按进程统计发送与接收的实时流量;
- 底部汇总行:显示所有进程的收发总带宽;
- 默认只统计一个网卡设备(通常是
eth0),可以用命令行参数指定其它设备; - 运行期间可以用交互命令切换排序方式(详见下文"交互命令"一节)。
当某个进程突然异常占用带宽时,NetHogs 会立刻把它顶到列表前列,你可以据此拿到对应的 PID,再顺藤摸瓜定位具体程序。
NetHogs 命令行参数
NetHogs 的命令行用法为:
nethogs [选项] [设备名 ...]核心参数一览
| 参数 | 作用 | 示例 |
|---|---|---|
-d <秒> | 设置刷新频率(刷新间隔) | nethogs -d 5 |
-h | 显示帮助 | nethogs -h |
-p | promiscuous(混杂)模式 | nethogs -p |
-t | trace(跟踪/文本)模式 | nethogs -t |
-V | 显示版本号 | nethogs -V |
<设备名> | 仅监控指定设备(默认eth0) | nethogs eth0 |
常用组合示例
设置 5 秒钟的刷新频率(RedHat 系):
# nethogs -d 5Debian/Ubuntu 系(需要 sudo):
$ sudo nethogs -d 5只监控 eth0 设备:
# nethogs eth0$ sudo nethogs eth0同时监控 eth0 和 eth1 两个接口——NetHogs 支持一次传入多个设备名:
# nethogs eth0 eth1$ sudo nethogs eth0 eth1实战组合:在拥挤时段以 1 秒间隔监控多网卡,快速捕捉突发流量:
$ sudo nethogs -d 1 eth0 eth1如果设备名与默认值不一致,可以通过ifconfig(对应手册见 ifconfig.md)或ip addr(见 ip.md)先确认当前活动网卡名称。
交互命令
NetHogs 运行期间支持键盘快捷键实时控制,无需退出重启:
| 快捷键 | 作用 |
|---|---|
m | 修改显示单位(如 KB/s、MB/s 之间切换) |
r | 按总流量排序 |
s | 按发送流量排序 |
q | 退出 NetHogs |
这几个快捷键配合-d刷新间隔,可以做到"先按发送量排序锁定异常进程 → 切换单位确认量级 → 按总流量复核"的完整排查流程。
监控排查实战思路
将 NetHogs 融入日常排障流程,可以形成一套可复用的带宽排查方法:
- 确认现象:用
watch -n 1 'nethogs -t'之类的组合周期性采样(watch的用法见 watch.md),或直接以-d 1启动 NetHogs; - 定位 PID:观察 send/received 两列,找出流量异常高的进程,记下其 PID 与进程名;
- 交叉验证:用
ps(见 ps.md)查看该 PID 对应的完整命令行,确认是业务程序还是异常脚本; - 关联连接:用
netstat/ss查看该进程建立的对外连接,判断流量去向; - 处置:对确认异常的进程执行
kill(见 kill.md),随后再用 NetHogs 确认带宽回落。
其中-t(trace 模式)输出的是纯文本行,适合被脚本或watch捕获做进一步分析,这也是它区别于全屏交互模式的实用价值所在。
适用前提与限制说明
- NetHogs 面向 Unix/Linux 系统,需要 root 权限才能完整读取所有进程的网络统计(Debian/Ubuntu 系使用
sudo); - 本文档是 ZeroTermux 内置命令手册之一,安装命令与运行环境密切相关:在 ZeroTermux 内置终端所运行的 Linux 环境中,按对应发行版(RHEL 系/Debian 系)的包管理器执行即可;若包源中暂无该工具,可先执行
apt-get update或确认 EPEL 源已启用; - 关于 NetHogs 命令行工具的完整参数列表,可以在终端输入
man nethogs或sudo man nethogs查阅手册页,这也是验证各项参数默认值与边界行为最权威的途径。
- 移动开发
- 开发工具
【免费下载链接】ZeroTermux
相关推荐
linux-command 手册精讲:NetHogs 按进程实时监控网络带宽的终端利器
linux command 手册精讲:NetHogs 按进程实时监控网络带宽的终端利器 NetHogs(Net top)是一个开源的命令行网络监控工具,它打破传
文档教程ZeroTermux 内置命令手册精讲:iptraf 实时网卡流量监控命令详解
ZeroTermux 内置命令手册精讲:iptraf 实时网卡流量监控命令详解 iptraf 是一款在 Linux 终端下实时监视网卡流量的经典交互式工具,能够
移动开发开发工具ZeroTermux 内置命令手册解读:Linux free 命令内存监控完全指南
ZeroTermux 内置命令手册解读:Linux free 命令内存监控完全指南 导读 free 是 Linux 系统中最基础、最常用的内存监控命令,用于查看
移动开发开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考