@大鲨鱼 #204 不错的项目 我也一直觉得探针应该做专职该做的事 最重要的是安全稳定可靠高效 其他项目按个人需求需要完全可以通过docker自己安装或者做成插件来实现 没有绝对的安全 主控一旦沦陷全部完蛋感觉没必要
不错 用gemini总了下 AI版权声明 monitor-probe 是一个极简主义的轻量级服务器探针项目(包含 Rust + axum + SQLite 构成的 Hub,以及纯 Rust 编写的 Linux Agent)。 以下是该项目的核心特点、CPU 监测方法的深度解析,以及它与同类工具(Komari、NodeGet)的差异对比。 monitor-probe 的项目特点 极度轻量与极简依赖:Agent 端采用 Rust 编写,编译为静态链接的单文件(musl),无任何运行时依赖,常驻内存仅需几 MB。 完全无状态设计:Agent 纯粹作为数据采集器,不写文件,不保存跨重启的任何数据。像“网卡总流量累加”这类需要记录状态的工作,全部交由服务端的 Hub 负责。这极大减少了受监控机器的磁盘 I/O,尤其适合在寿命有限的 SD 卡(如树莓派)上运行。 安全性优化: Token 通过 HTTP 的 Authorization 头传递,不会进入 Nginx/Caddy 等反向代理的 access.log,防止 Token 泄露。 强制安全策略:在非回环地址(非 localhost)下,直接拒绝明文的 ws:// WebSocket 连接,强制要求加密。 对齐原生命令:内存占用算法严格对齐原生 free(1) 的 used 列,磁盘统计严格对齐 df(1) 的 Used 列,避免出现面板数据与终端命令数据不一致的困扰。 CPU 及资源占用监测方法 大多数 Rust 探针会直接引入第三方重量级系统库(如 sysinfo)来获取数据。但 monitor-probe 为了极致的性能和极小的体积,直接抛弃了 sysinfo,采用了“手撸内核接口”的方法: CPU 监测(读取 /proc): Agent 直接读取并解析 Linux 的虚拟文件系统 /proc/stat。该文件记录了 CPU 从开机以来的时间片分配(如 user、system、idle、iowait 等)。Agent 通过在两次上报间隔中读取这些累计值,计算出 Delta(差值),从而得出极度精确且开销极低的 CPU 实际使用率。 磁盘与内存监测: 不依赖外部工具扫描,直接读取 /proc/meminfo(内存)和系统底层调用 statvfs(磁盘),用最少的系统调用完成数据采集。 对比 Komari 与 NodeGet 在同类探针和服务器状态面板中,这三者有着完全不同的设计哲学与应用场景: 特性 / 项目 monitor-probe Komari NodeGet (NodeGet-StatusShow) 开发语言 (Agent) Rust (极低开销、内存安全) Go (轻量,但略重于纯 Rust) TypeScript/Node.js (资源开销相对最高) 核心定位 极致安全的纯数据遥测探针 带反向 shell 的全功能管理探针 侧重于前端展示的公共状态聚合页 CPU/系统交互 直读 /proc,无状态、零 I/O 会频繁扫描连接,曾在低配机型引发过 CPU 100% 的性能 Bug 依赖宿主 Node 运行环境或第三方系统库 安全性与控制权 纯只读。无任何远程执行能力,安全级别最高。 高危双刃剑。出厂默认开启反向 PTY shell 和 exec 命令执行。 主要为纯静态或前端展示,Agent 端多依赖开源社区现成方案。 monitor-probe 的核心优化与区别所在: 安全性断层领先 ( vs Komari ) 根据安全厂商 Huntress 在 2026 年的报告,Komari 曾被黑客组织滥用为 C2(命令与控制)通道。原因在于 Komari 在设计上不仅仅是个探针,它默认开启了双向控制通道,包含 exec 和 terminal(交互式反向 Shell)功能。这意味着如果 Komari 服务端被黑,所有受控主机的最高权限(SYSTEM/root)将全部沦陷。 优化点:monitor-probe 在设计上彻底砍掉了“远程控制”功能,仅做单向的数据上报(只读),从根本上杜绝了被当作后门勒索的可能。 资源调度更科学 Komari 的旧版本曾因为在扫描 /proc 获取网络连接数时缺乏限制,导致在 1C/2C 机器上 Agent 自身吃掉了 50%~100% 的 CPU 性能。 优化点:monitor-probe 通过无状态化和避免暴力扫描高频变更的 /proc 节点,将性能损耗降到了微秒级别。 展示侧重不同 ( vs NodeGet ) NodeGet(StatusShow 及其衍生)通常聚焦在如何让公开的“服务器探针面板”更美观,重在前端构建(React/Next.js 生态)。而 monitor-probe 把主要精力花在了“如何让 Agent 在底层系统里做到真正的隐形与无感”。
厉害
网络侧问题建议补充地区、运营商和复现步骤。有测速/抓包/报错原文会更好定位。
怎么界面都长一个样
@MJJ夏大 #203
因为我个人也十分喜欢 komari,所以在设计上抄袭了它体验很好的部分,就比如节点列表
这下子真要试试了
@大鲨鱼 #204
不错的项目 我也一直觉得探针应该做专职该做的事
最重要的是安全稳定可靠高效
其他项目按个人需求需要完全可以通过docker自己安装或者做成插件来实现
没有绝对的安全 主控一旦沦陷全部完蛋感觉没必要
不错 用gemini总了下
AI版权声明
monitor-probe 是一个极简主义的轻量级服务器探针项目(包含 Rust + axum + SQLite 构成的 Hub,以及纯 Rust 编写的 Linux Agent)。
以下是该项目的核心特点、CPU 监测方法的深度解析,以及它与同类工具(Komari、NodeGet)的差异对比。
monitor-probe 的项目特点
Authorization头传递,不会进入 Nginx/Caddy 等反向代理的access.log,防止 Token 泄露。ws://WebSocket 连接,强制要求加密。free(1)的 used 列,磁盘统计严格对齐df(1)的 Used 列,避免出现面板数据与终端命令数据不一致的困扰。CPU 及资源占用监测方法
大多数 Rust 探针会直接引入第三方重量级系统库(如
sysinfo)来获取数据。但monitor-probe为了极致的性能和极小的体积,直接抛弃了 sysinfo,采用了“手撸内核接口”的方法:/proc):Agent 直接读取并解析 Linux 的虚拟文件系统
/proc/stat。该文件记录了 CPU 从开机以来的时间片分配(如user、system、idle、iowait等)。Agent 通过在两次上报间隔中读取这些累计值,计算出 Delta(差值),从而得出极度精确且开销极低的 CPU 实际使用率。不依赖外部工具扫描,直接读取
/proc/meminfo(内存)和系统底层调用statvfs(磁盘),用最少的系统调用完成数据采集。对比 Komari 与 NodeGet
在同类探针和服务器状态面板中,这三者有着完全不同的设计哲学与应用场景:
/proc,无状态、零 I/Oexec命令执行。monitor-probe 的核心优化与区别所在:
根据安全厂商 Huntress 在 2026 年的报告,Komari 曾被黑客组织滥用为 C2(命令与控制)通道。原因在于 Komari 在设计上不仅仅是个探针,它默认开启了双向控制通道,包含
exec和terminal(交互式反向 Shell)功能。这意味着如果 Komari 服务端被黑,所有受控主机的最高权限(SYSTEM/root)将全部沦陷。优化点:
monitor-probe在设计上彻底砍掉了“远程控制”功能,仅做单向的数据上报(只读),从根本上杜绝了被当作后门勒索的可能。Komari 的旧版本曾因为在扫描
/proc获取网络连接数时缺乏限制,导致在 1C/2C 机器上 Agent 自身吃掉了 50%~100% 的 CPU 性能。优化点:
monitor-probe通过无状态化和避免暴力扫描高频变更的/proc节点,将性能损耗降到了微秒级别。NodeGet(StatusShow 及其衍生)通常聚焦在如何让公开的“服务器探针面板”更美观,重在前端构建(React/Next.js 生态)。而
monitor-probe把主要精力花在了“如何让 Agent 在底层系统里做到真正的隐形与无感”。我用的ds了
希望可以支持komari的主题生态
支持