news 2026/11/5 18:14:48

ZeroTermux 内置命令手册解读:用 NetHogs 按进程实时监控网络带宽

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ZeroTermux 内置命令手册解读:用 NetHogs 按进程实时监控网络带宽
  • 移动开发
  • 开发工具

【免费下载链接】ZeroTermux

项目地址:https://gitcode.com/GitHub_Trending/ze/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接口统计、连接状态接口收发统计、连接状态报告
topCPU / 内存系统当前运行进程的资源占用
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 nethogs

Ubuntu 12.10 及之后的版本都已在官方软件源中收录 NetHogs,无需额外添加 PPA。

NetHogs 基本用法

启动 NetHogs

基于 RedHat 系的系统(root 或具备权限的用户)直接运行:

# nethogs

Debian/Ubuntu/Linux Mint 下必须拥有 root 权限:

$ sudo nethogs

界面解读

启动后,NetHogs 会在终端中呈现一张类似top的动态列表:

  • send 列与 received 列:分别按进程统计发送与接收的实时流量;
  • 底部汇总行:显示所有进程的收发总带宽;
  • 默认只统计一个网卡设备(通常是eth0),可以用命令行参数指定其它设备;
  • 运行期间可以用交互命令切换排序方式(详见下文"交互命令"一节)。

当某个进程突然异常占用带宽时,NetHogs 会立刻把它顶到列表前列,你可以据此拿到对应的 PID,再顺藤摸瓜定位具体程序。

NetHogs 命令行参数

NetHogs 的命令行用法为:

nethogs [选项] [设备名 ...]

核心参数一览

参数作用示例
-d <秒>设置刷新频率(刷新间隔)nethogs -d 5
-h显示帮助nethogs -h
-ppromiscuous(混杂)模式nethogs -p
-ttrace(跟踪/文本)模式nethogs -t
-V显示版本号nethogs -V
<设备名>仅监控指定设备(默认eth0)nethogs eth0

常用组合示例

设置 5 秒钟的刷新频率(RedHat 系):

# nethogs -d 5

Debian/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 融入日常排障流程,可以形成一套可复用的带宽排查方法:

  1. 确认现象:用watch -n 1 'nethogs -t'之类的组合周期性采样(watch的用法见 watch.md),或直接以-d 1启动 NetHogs;
  2. 定位 PID:观察 send/received 两列,找出流量异常高的进程,记下其 PID 与进程名;
  3. 交叉验证:用ps(见 ps.md)查看该 PID 对应的完整命令行,确认是业务程序还是异常脚本;
  4. 关联连接:用netstat/ss查看该进程建立的对外连接,判断流量去向;
  5. 处置:对确认异常的进程执行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

项目地址:https://gitcode.com/GitHub_Trending/ze/ZeroTermux
点击查看免费下载

相关推荐

上一篇:Qwen3-VL技术演进深度剖析:从基础范式到多模态智能新纪元
下一篇:TweetNaCl.js入门指南:JavaScript加密库的快速上手教程

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 23:06:28

C语言大作业实战:学生信息管理系统的链表与文件读写拆解

简介&#xff1a;一份来自西北工业大学课程要求的C语言大作业工程包&#xff0c;包含两个独立题目&#xff1a;绘制杨辉三角与借书方案。绘制杨辉三角涵盖二维数组存储、嵌套循环输出、条件判断控制格式以及自定义函数计算二项式系数等核心语法&#xff1b;借书方案则模拟图书馆…

作者头像 李华
网站建设 2026/11/1 14:07:20

Boost 1.78 预编译动态库与 MinGW-w64 7.3.0 集成实战指南

简介&#xff1a;一套面向Windows 64位平台的Boost 1.78动态库编译包&#xff0c;采用MinGW 7.3.0工具链生成&#xff0c;同时打包Debug与Release两种版本&#xff0c;专门服务使用Qt Creator的C开发者。压缩包文件总量超过一万五千个&#xff0c;其中包含一万四千五百余个hpp头…

作者头像 李华
网站建设 2026/10/21 14:46:59

从机器人到数字人:用MATLAB打通数学主线与运动学实现

简介&#xff1a;这份资源是面向高年级本科生、研究生及工程师的机器人学教材&#xff0c;聚焦从传统机器人分析到数字人体建模的完整知识链路&#xff0c;并系统讲解MATLAB编程在其中的落地应用。作者Edward Y.L. Gu结合在克莱斯勒AM部门的实习经验与奥克兰大学机器人学、非线…

作者头像 李华