Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
kmon — Linux 内核管理器与活动监视器 🐧💻 | Kitploit
工具/GitHubGitHub/orhun/kmon
通用工具
GitHuborhun/kmon

kmon

Linux 内核管理器与活动监视器 🐧💻

查看仓库网站
2.9k9421个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享


Linux 内核管理器与活动监视器 🐧💻


内核是操作系统中促进 硬件 和 软件 组件之间交互的部分。在大多数系统中,它在启动时被加载,位于 引导加载程序 之后,负责处理 I/O 请求以及键盘、显示器、网络适配器和扬声器等外围设备。通常,内核负责 内存管理、进程管理、设备管理、系统调用 和 安全。 应用程序使用 系统调用 机制来请求操作系统的服务,并且在大多数情况下,这个请求通过操作系统提供的库传递给内核,以调用相关内核函数。当内核执行这些低级任务时,它驻留在内存的一个单独部分,称为 受保护的内核空间,该空间不能被应用程序和系统的其他部分访问。相反,像浏览器、文本编辑器、窗口管理器或音频/视频播放器这样的应用程序使用内存的另一个独立区域,即 用户空间。这种分离防止了用户数据和内核数据相互干扰,导致不稳定和速度变慢,同时也防止了有故障的应用程序崩溃整个操作系统。
由于管理系统调用和资源的方式不同,存在不同的内核设计。例如,宏内核 将所有操作系统指令运行在相同的地址空间中 以追求速度,而 微内核 为用户和内核服务使用不同的空间 以实现模块化。除此之外,还有 混合内核、纳米内核 和 外核。混合内核架构基于结合微内核和宏内核的特点。

Linux 内核 是开源的、宏内核且类 Unix 的操作系统内核,用于 Linux 发行版、各种嵌入式系统(如路由器)以及所有基于 Android 的系统。林纳斯·托瓦兹 在 1991 年构思并创建了 Linux 内核,至今仍有成千上万的开发者在持续开发它。它是 自由及开源软件 的一个突出例子,也被用于其他自由软件项目,特别是 GNU 操作系统。 尽管基于 Linux 的操作系统主导了大部分计算领域,但它仍然带有一些设计缺陷,这些缺陷在 Linux 早期曾引发大量争论。例如,它拥有 最大的占用空间 和 最高的复杂性,超过了其他类型的内核。但这是宏内核固有的设计特性。这类设计问题促使开发者向 Linux 内核添加了其他内核所不具备的新功能和机制。

与标准的宏内核不同,Linux 内核也是 模块化的,接受 可加载内核模块 (LKM),通常用于支持新的 硬件(作为设备驱动程序)和/或 文件系统,或添加 系统调用。由于 LKM 可以在 运行时 加载和卸载到系统,它们具有无需重启和重新编译即可扩展内核的优势。因此,模块提供的内核功能不会在不被使用时驻留内存,相关的模块可以被卸载以释放内存和其他资源。
可加载内核模块位于 Linux 中的 /lib/modules,扩展名为 .ko(内核对象)。lsmod 命令可用于列出已加载的内核模块,而 modprobe 或 insmod/rmmod 用于加载或卸载内核模块。insmod/rmmod 用于独立于 modprobe 且无需安装到 /lib/modules/$(uname -r) 的模块。

下面是一个简单的 Linux 内核模块示例,它在加载和卸载时打印一条消息。使用 Makefile 构建和安装该 模块 的步骤如下所示。``` make # build sudo make install # install sudo modprobe lkm_example # load sudo modprobe -r lkm_example # unload

root@kitploit:~
下面的 [dmesg](https://linux.die.net/man/8/dmesg) 命令用于获取内核的消息缓冲区。```
[16994.295552] [+] Example kernel module loaded.
[16996.325674] [-] Example kernel module unloaded.

kmon 提供了一个基于文本的用户界面,用于管理 Linux 内核模块并监控内核活动。所谓管理,是指加载、卸载、黑名单化以及显示模块信息。内核模块的这些更新、有关硬件的日志以及其他内核消息,可以通过 kmon 的实时活动监视器进行跟踪。由于在 Linux 中执行这些任务需要使用不同的工具,例如 dmesg 和 kmod,kmon 旨在将它们集中到一个终端窗口中,尽可能简化使用过程,同时保持功能完整。

kmon 使用 Rust 编写,并借助 Ratatui 和 termion 库来实现其基于文本的用户界面。

目录

  • 安装
    • Cargo
    • Arch Linux
    • Nixpkgs
    • Alpine Linux
    • Docker
      • 构建
      • 运行
    • 手动安装
      • 注意
  • 使用
    • 选项
    • 命令
      • 排序
  • 按键绑定
  • 功能
    • 帮助
    • 导航与滚动
      • 滚动内核活动
      • 平滑滚动
    • 选项菜单
    • 块大小
    • 块位置
    • 内核信息
    • 模块信息
      • 显示依赖模块
      • 跳转到依赖模块
    • 搜索模块
    • 加载模块
    • 卸载模块
    • 黑名单化模块
    • 重新加载模块
    • 清除环形缓冲区
    • 复制与粘贴
    • 排序/反转内核模块
    • 自定义颜色
      • 支持的颜色
      • 使用自定义颜色
      • 更改强调色
    • Unicode 符号
    • 设置终端刷新率
    • 通过正则表达式搜索模块
  • 路线图
    • 可访问性
    • 依赖项
    • 功能
    • 测试

安装

打包状态

Cargo

kmon 可以通过 Cargo 从 crates.io 安装,前提是已安装 Rust。``` cargo install kmon

root@kitploit:~
最低支持的Rust版本(MSRV)为`1.74.1`。

### Arch Linux

**kmon**可以从Arch Linux的[官方仓库](https://www.archlinux.org/packages/extra/x86_64/kmon/)安装。```
pacman -S kmon

此外,还有一个开发包位于AUR上。使用你喜欢的AUR helper进行安装。例如,``` paru -S kmon-git

root@kitploit:~
### Nixpkgs

**kmon** 可以使用 [Nix 包管理器](https://nixos.org/nix/) 从 `nixpkgs-unstable` 频道安装。```
nix-channel --add https://nixos.org/channels/nixpkgs-unstable
nix-channel --update nixpkgs
nix-env -iA nixpkgs.kmon

在 NixOS 上:``` nix-channel --add https://nixos.org/channels/nixos-unstable nix-channel --update nixos nix-env -iA nixos.kmon

root@kitploit:~
### Alpine Linux

**kmon** 可用于 [Alpine Edge](https://pkgs.alpinelinux.org/packages?name=kmon&branch=edge)。在启用 [社区仓库](https://wiki.alpinelinux.org/wiki/Repositories) 后,可通过 [apk](https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper) 安装。```
apk add kmon

Docker

Docker Hub 构建状态``` docker run -it --cap-add syslog orhunp/kmon:tagname

root@kitploit:~
#### 构建```
docker build -t kmon .

运行```

docker run -it --cap-add syslog kmon

root@kitploit:~
### 手册

1. 从 [releases](https://github.com/orhun/kmon/releases) 部分下载最新的二进制文件,并选择 [glibc](https://en.wikipedia.org/wiki/Glibc) 或 [musl-libc](https://musl.libc.org/) 二进制文件。
2. 要下载使用 [glibc](https://en.wikipedia.org/wiki/Glibc) 编译的软件包,请运行:```
wget https://github.com/orhun/kmon/releases/download/v[VERSION]/kmon-[VERSION]-x86_64-unknown-linux-gnu.tar.gz
  1. 要下载使用 musl-libc 编译的软件包,运行:``` wget https://github.com/orhun/kmon/releases/download/v[VERSION]/kmon-[VERSION]-x86_64-unknown-linux-musl.tar.gz
root@kitploit:~
3. 提取文件。```
tar -xvzf kmon-*.tar.gz
  1. 进入新文件夹。``` cd kmon-[VERSION]
root@kitploit:~
5. 运行该二进制文件。```
./kmon
  1. 将二进制文件移动到 /usr/local/bin/,以便使用 kmon 命令从终端运行。

  2. 在构建时,手册页和 Shell 补全文件会生成在 target 目录中。

注意

要使用 X11 的复制/粘贴命令,需要安装 libxcb。

例如:在 Debian/Ubuntu* 上安装 libxcb1-dev 包,在 Fedora/openSUSE/Void Linux 上安装 libxcb-devel 包。

使用方法```

kmon [OPTIONS] [COMMAND]

root@kitploit:~
### 选项```
-a, --accent-color <COLOR>  Set the accent color using hex or color name [default: white]
-c, --color <COLOR>         Set the main color using hex or color name [default: darkgray]
-t, --tickrate <MS>         Set the refresh rate of the terminal [default: 250]
-r, --reverse               Reverse the kernel module list
-u, --unicode               Show Unicode symbols for the block titles
-E, --regex                 Interpret the module search query as a regular expression
-h, --help                  Print help information
-V, --version               Print version information

命令```

sort Sort kernel modules

root@kitploit:~
#### 排序```
kmon sort [OPTIONS]

选项:``` -s, --size Sort modules by their sizes -n, --name Sort modules by their names -d, --dependent Sort modules by their dependent modules -h, --help Print help information

root@kitploit:~
## 快捷键

|                         |                                       |
| ----------------------- | ------------------------------------- |
| `[?], F1`               | 帮助                                 |
| `right/left, h/l`       | 在块之间切换                          |
| `up/down, k/j, alt-k/j` | 上下滚动 [选中块]                     |
| `pgup/pgdown`           | 上下滚动 [内核活动]                   |
| `</>`                   | 上下滚动 [模块信息]                   |
| `alt-h/l`               | 左右滚动 [内核活动]                   |
| `ctrl-t/b, home/end`    | 滚动到顶部/底部 [模块列表]            |
| `alt-e/s`               | 展开/收缩选中块                       |
| `ctrl-x`                | 改变块的位置                          |
| `ctrl-l/u, alt-c`       | 清除内核环形缓冲区                    |
| `[d], alt-d`            | 显示依赖模块                          |
| `[1]..[9]`              | 跳转到依赖模块                        |
| `[\], tab, backtab`     | 显示下一个内核信息                    |
| `[/], s, enter`         | 搜索内核模块                          |
| `[+], i, insert`        | 加载内核模块                          |
| `[-], u, backspace`     | 卸载内核模块                          |
| `[x], b, delete`        | 将内核模块加入黑名单                  |
| `ctrl-r, alt-r`         | 重新加载内核模块                      |
| `m, o`                  | 显示选项菜单                          |
| `y/n`                   | 执行/取消命令                         |
| `c/v`                   | 复制/粘贴                             |
| `r, F5`                 | 刷新                                 |
| `q, ctrl-c/d, ESC`      | 退出                                 |

## 功能特性

### 帮助

在终端 UI 运行时按 `?` 可查看快捷键。

![帮助](https://assets.kitploit.com/production/public/readmes/4513/092daae0aa14fca490bc69381d3db28d4ff9a539c794a1991fb91c71e4424379.gif)

### 导航与滚动

使用 `方向键` 在块之间导航和滚动。

![导航与滚动](https://assets.kitploit.com/production/public/readmes/4513/da959ba770e1c03f848633a36d54097b8f82c8b41ef9e8e046ba31f6c976a3a3.gif)

#### 滚动内核活动

某些内核消息可能过长,无法完全显示在内核活动块中(因为不换行)。此时,可以使用 `alt-h & alt-l` 键水平滚动内核活动。垂直滚动机制与其他块相同。

![滚动内核活动](https://assets.kitploit.com/production/public/readmes/4513/025efb6bfd17e6228b1f623e756c871836df78251defe58c57c65505616a4837.gif)

#### 平滑滚动

可以使用 `alt-j & alt-k` 键缓慢滚动内核活动和模块信息块。

![平滑滚动](https://assets.kitploit.com/production/public/readmes/4513/e195f5f4ad41495fa7211bb3a91e12e9b4892a79418e2ce621dec963bed21e42.gif)

### 选项菜单

`m` 和 `o` 键可作为内核管理操作的快捷方式。按下后,将显示一个选项菜单,用于管理当前选中的内核模块。

![选项菜单](https://assets.kitploit.com/production/public/readmes/4513/8e5d26b77f927e4a5817c2e4402da8f53a91ec96621b049d05328c8dae544386.gif)

### 块大小

使用 `alt-e & alt-s` 键可展开/收缩选中块。

![块大小](https://assets.kitploit.com/production/public/readmes/4513/d563b6e8a665b57a9100ed1ee1dddf4c58029821e38e1ad2ff91d22e4c5c7e2c.gif)

### 块位置

使用 `ctrl-x` 键可更改块的位置。

![块位置](https://assets.kitploit.com/production/public/readmes/4513/3cf0ddc44319f9fe7e5fa6027d8f66de5e33ea96032e0e19bae8b75d8d276c84.gif)

### 内核信息

使用 `\, tab, backtab` 中的任意键可在内核发行版、版本和平台信息之间切换。

![内核信息](https://assets.kitploit.com/production/public/readmes/4513/2003d3fef4bee4ddebbf578f97432611dbadb685f18c93f706f327b7a320bfa1.gif)

### 模块信息

选中模块时,会显示其状态。

![模块信息](https://assets.kitploit.com/production/public/readmes/4513/fbd0a6aa127a5de68390c6776bb7ff019f328b600101d53a937fe3b58746c19b.gif)

#### 显示依赖模块

使用 `d, alt-d` 中的任意键显示选中模块的所有依赖模块。

![显示依赖模块](https://assets.kitploit.com/production/public/readmes/4513/93b382f93492bc58575981ef3bd2e9a5203eab4ee0d3df3cb04f5edc27511adf.gif)

#### 跳转到依赖模块

要从父模块跳转到依赖的内核模块,可以使用 `数字键`(1-9)指定 _被使用_ 列中模块的索引。

![依赖信息](https://assets.kitploit.com/production/public/readmes/4513/ddfa494abda891dfe1ac81d6d0c46fe8892ef07314f1ae80702e0603ff37306f.gif)

### 搜索模块

使用方向键或 `/, s, enter` 中的任意键切换到搜索区域,然后输入模块名称的搜索查询。

![搜索模块](https://assets.kitploit.com/production/public/readmes/4513/08a4df2fb9795e789c77cf19fc289a37bd5ec551a6f466e4c8240fb0b1f18f8c.gif)

### 加载模块

要向 Linux 内核添加模块,请使用 `+, i, insert` 中的任意键切换到加载模式,并提供要加载的模块名称。然后使用 `y/n` 确认/取消加载命令的执行。

![加载模块](https://assets.kitploit.com/production/public/readmes/4513/fcb829b17f0fe7d09e29a3edbddfac451f17fb6ef5a8739eee855170876ac9ba.gif)

用于加载模块的命令:```
modprobe <module_name> || insmod <module_name>.ko

卸载模块

使用 -、u、backspace 键之一从 Linux 内核中卸载选定的模块。

Unloading a module

用于卸载模块的命令:``` modprobe -r <module_name> || rmmod <module_name>

root@kitploit:~
### 屏蔽一个模块

[黑名单机制](https://wiki.archlinux.org/index.php/Kernel_module#Blacklisting) 是一种阻止内核模块加载的机制。要屏蔽选定的模块,请使用 `x, b, delete` 键中的一个并确认执行。

![屏蔽一个模块](https://assets.kitploit.com/production/public/readmes/4513/58af72f6d1ba84074928fbad372c58bf054fe3e16ac6c42e6dadb257ca7c9b41.gif)

用于屏蔽模块的命令:```
if ! grep -q <module_name> /etc/modprobe.d/blacklist.conf; then
  echo 'blacklist <module_name>' >> /etc/modprobe.d/blacklist.conf
  echo 'install <module_name> /bin/false' >> /etc/modprobe.d/blacklist.conf
fi

重新加载模块

使用 ctrl-r 或 alt-r 键重新加载选中的模块。

Reloading a module

用于重新加载模块的命令:``` modprobe -r <module_name> || rmmod <module_name> && modprobe <module_name> || insmod <module_name>.ko

root@kitploit:~
### 清除环形缓冲区

内核环形缓冲区可以通过使用 `ctrl-l/u, alt-c` 键之一来清除。

![清除环形缓冲区](https://assets.kitploit.com/production/public/readmes/4513/5c693de033427319d9960aa2c1e35cf773a711e736962beb980b564bf071dfbd.gif)```
dmesg --clear

复制与粘贴

c/v 键已设置为复制/粘贴操作。

复制与粘贴

在输入模式下,使用 ctrl-c/ctrl-v 进行复制和粘贴。

排序/反转内核模块

sort 子命令可用于按名称、大小或依赖模块对内核模块进行排序。``` kmon sort --name kmon sort --size kmon sort --dependent

root@kitploit:~
![对内核模块进行排序](https://assets.kitploit.com/production/public/readmes/4513/2e134a1dc23793a61ee9cbb5523063dc8791e9e10b70550cc738da00f8c61f39.gif)

此外,`-r, --reverse` 标志用于反转内核模块列表。```
kmon --reverse

Reversing the kernel modules

自定义颜色

kmon 默认使用终端的颜色,但可以通过 -c, --color 选项指定高亮颜色。或者,可以通过 -a, --accent-color 选项设置默认文本颜色。

支持的颜色

支持的终端颜色有:black, red, green, yellow, blue, magenta, cyan, gray, darkgray, lightred, lightgreen, lightyellow, lightblue, lightmagenta, lightcyan, white。``` kmon --color red

root@kitploit:~
![Supported Colors](https://assets.kitploit.com/production/public/readmes/4513/03a0e1fbb0b033dd9571a77a29658679aa74cebc983af4430d590174861649a9.gif)

#### 使用自定义颜色

提供一个十六进制值用于颜色。```
kmon --color 19683a

使用自定义颜色

更改强调色

默认文本颜色在某些具有透明度的主题上可能导致可读性问题。-a, --accent-color 选项的使用方式与 -c, --color 选项类似,可用来解决此问题。``` kmon --color 6f849c --accent-color e35760

root@kitploit:~
![Changing the accent color](https://assets.kitploit.com/production/public/readmes/4513/78d04e79126d2382ccfbe48d2a60e183c252c62282e9ef0e501499f07b9f7c60.gif)

### Unicode 符号

使用 `-u, --unicode` 参数来显示区块标题的 Unicode 符号。```
kmon --unicode

Unicode 符号

设置终端刷新率

-t, --tickrate 选项可用于设置终端用户界面的刷新间隔(毫秒)。

设置终端刷新率

使用正则表达式搜索模块

-E, --regex 选项可通过正则表达式搜索模块。

路线图

kmon 旨在成为 Linux 内核管理的标准工具,同时支持大多数 Linux 发行版。

可访问性

为实现这一目标,kmon 应可通过不同的包管理器(如 Snap* 和 RPM)获取。

依赖关系

系统需要具备 dmesg 和 kmod 等基本工具,kmon 才能正常工作。因此下一步将是仅使用系统资源来实现这些功能。

功能

与 Linux 内核相关的管理操作应在 kmon 中实现,以最小化对命令行和其他工具的依赖。

测试

kmon 应在不同架构上进行测试和报告,以便进一步开发和支持。

资源

关于项目

  • 行为准则
  • 贡献指南
  • 创建发布

文章

  • 探索 Linux 内核(Bob Cromwell)
  • Linux 可加载内核模块剖析(Terenceli)
  • 使用 kmod 管理内核模块(Lucas De Marchi)

媒体报道

  • 使用 Kmon 管理和监控 Linux 内核模块(OSTechNix)
  • Kmon:Linux 内核管理和监控软件(Brodie Robertson 在 YouTube 上)

图库

Fedora 31Debian 10Manjaro 19
kmon 在 Fedora 上kmon 在 Debian 上kmon 在 Manjaro 上
Ubuntu 18.04openSUSEVoid Linux
kmon 在 Ubuntu 上kmon 在 openSUSE 上kmon 在 Void Linux 上

社交媒体

  • 在 Twitter 上关注 @kmonitor_
  • 关注作者:
    • 在 GitHub 上关注 @orhun
    • 在 Twitter 上关注 @orhundev

资助

GitHub

通过在 GitHub Sponsors 上支持我,来支持我的项目开发。

Patreon

Patreon 按钮

Open Collective

Open Collective 支持者 Open Collective 赞助者

通过成为支持者或赞助者来支持开源开发工作。

Open Collective 按钮

许可证

GNU 通用公共许可证(3.0)

版权

版权所有 © 2020-2024,Orhun Parmaksız

下载工具
  • 资源
    • 关于项目
    • 文章
    • 媒体报道
    • 图库
    • 社交媒体
  • 资金
    • GitHub
    • Patreon
    • Open Collective
  • 许可证
  • 版权