再探 Komari 探针
控制端自监控
进过测试,控制端是可以做到自己监控自己的。二进制部署后,用作控制端的 NAT 小鸡的 64MB 内存也没有爆。
给板卡扎针 (Komari Agent)
目前,我的 Linux 板卡已经连上路由器,也就是常说的“已连上 Wi-Fi”了。
此时板卡处于一种典型的 “只能出不能入”(Outbound-only) 网络环境:允许主机主动连接外部网络 (Outbound),但不允许外部直接访问内部主机(Inbound 被阻断)。
在这种前提下,依然成功让 Komari Agent “扎针”并保持在线,这一点让我感到非常意外,非常有意思。
Komari Agent 通信机制
其详细原理可见 官方文档 - Komari Agent 信息上报与事件处理文档。
在我的场景中,板卡是 Linux 系统,并且 可以正常出站访问公网。Komari Agent 启动后会:
- 主动向 Komari 服务端发起 HTTPS / WebSocket 连接;
- 启动时先通过 HTTP 上报一次基础信息(例如 CPU、内存、磁盘等静态或缓变数据);
- 之后通过 WebSocket 以固定间隔持续推送实时监控数据(CPU 使用率、内存占用等);
- 同时在这条 WebSocket 连接上接收来自服务端的远程命令等事件,在本地执行后再将结果回传。
整个过程中,所有连接都是由 “板卡 → 公网 → Komari 主控” 主动发起的:内网侧无需开放任何端口,路由器也不需要做端口映射,更不要求公网能够反向访问板卡 IP。
Agent 自动发现
其详细教程可见 官方文档 - Agent 自动发现。
bash <(curl -sL https://raw.githubusercontent.com/komari-monitor/komari-agent/refs/heads/main/install.sh) -e https://example.com --auto-discovery <AD Key> --install-ghproxy https://ghfast.top/