📦 Openclaw Mutual Repair — 双机互修
v1.0.0实现两台 OpenClaw 实例间的心跳监控、健康检查、故障诊断和远程修复功能,支持 7×24 小时稳定运行。
0· 77·0 当前·0 累计
安全扫描
OpenClaw
可疑
medium confidence该技能的代码和文档基本符合双机心跳/修复工具的描述,但存在一些值得关注的细节(文档中嵌入的发布令牌、使用广泛的 exec/network 能力,以及截断的源文件导致修复行为不明确),在生产环境安装前需谨慎对待。
评估建议
该技能大致符合其描述(双机心跳、健康检查和远程修复),但在安装前请审查以下事项: - 删除或轮换任何泄露的凭证:PUBLISH.md 包含一个看起来像 Claw-CLI 令牌的内容 — 视为已泄露并轮换它。 - 审计完整的 src/index.ts(提供的代码片段被截断)以确认修复是如何执行的(特别是是否运行 ssh/远程命令及参数)。如果修复调用 shell 命令或 SSH,确保命令是明确且受限的,并确保 SSH 密钥受到严格控制。 - 首先在隔离/暂存环境中运行该技能。服务默认监听 0.0.0.0:9528 — 配置防火墙以仅限制对端访问,避免将端口暴露到公共互联网。 - 确保主机具有预期的工具(pm2、nc、ss、ping)且对其输出的解析对于你的操作系统是健壮的;解析不良的输出可能导致错误的诊断。 - 优先使用最小权限:仅提供到配置对等方所需的网络连接,并在确认其确切行为之前不启用远程修复。如果需要,我可以:1) 在仓库中搜索其他潜在机密,2) 如果你能提供 src/index.ts 的其余部分,尝试重建截断的部分,3) 生成一个安全配置和防火墙规则的简短清单以部署此技能。...详细分析 ▾
✓ 用途与能力
名称、README、SKILL.md、skill.json 和 src/index.ts 均描述了一个双机心跳、健康检查和修复系统。声明的权限(exec、network)与执行 shell 检查并向对端发送心跳的实现相匹配;这些能力与所述目的相称。
ℹ 指令范围
SKILL.md 将指令限制在配置主机/端口、启动/停止服务以及使用 health/diagnose/repair 命令。运行时代码执行本地系统命令(free、top、pm2、ss、ping、nc)并向配置的 remoteHost 发送 HTTP 请求 — 这在预期范围内,但意味着该技能将读取系统状态并在触发时可能运行修复命令。
ℹ 安装机制
未提供明确的安装规范(仅限指令),但包包含代码和 package.json(axios 依赖)。这意味着 ClawHub 添加时将安装代码/依赖;缺乏安装/已验证的发布 URL 与已知包发布机制相比增加了供应链方面的风险。
⚠ 凭证需求
该技能声明没有必需的环境变量(良好)且权限对于任务来说是合理的。但是,文档(PUBLISH.md)包含嵌入的 Claw-CLI 令牌字符串,这看起来是泄露到仓库中的凭证;这与正常的运行时需求无关,是一个危险信号。此外,远程修复行为可能需要 SSH 访问(SKILL.md 提到 SSH 密钥),因此运维人员应确保 SSH 使用受限且密钥安全管理。
✓ 持久化与权限
always:false 和默认自主调用已设置(正常)。该技能在清单中不请求系统级配置更改。自主调用与 exec/network 相结合功能强大,但对于运维/修复技能来说是预期的;没有证据表明它需要持久的提升平台权限。
⚠ src/index.ts:177
检测到 shell 命令执行(child_process)。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/3/27
OpenClaw Mutual Repair v1.0.0 - 初始版本发布 - 实现双机心跳监控与自动告警 - 支持内存/CPU/进程健康检查 - 提供故障诊断和远程修复能力(PM2/systemd) - 支持故障排查指令与安全隔离建议
● 可疑
安装命令
点击复制官方npx clawhub@latest install openclaw-mutual-repair
镜像加速npx clawhub@latest install openclaw-mutual-repair --registry https://cn.longxiaskill.com
技能文档
让两只 OpenClaw 互相守护,实现 7×24 小时稳定运行
📦 安装
clawhub install openclaw-mutual-repair
🚀 快速开始
1. 配置双机环境
在两台机器上分别配置:
机器 A (192.168.1.100):
{
"localHost": "0.0.0.0",
"localPort": 9528,
"remoteHost": "192.168.1.101",
"remotePort": 9528,
"heartbeatInterval": 300000
}
机器 B (192.168.1.101):
{
"localHost": "0.0.0.0",
"localPort": 9528,
"remoteHost": "192.168.1.100",
"remotePort": 9528,
"heartbeatInterval": 300000
}
2. 启动互修服务
在飞书或 OpenClaw 中输入:
启动互修
3. 使用示例
用户:健康检查
用户:诊断
用户:启动互修
用户:停止互修
📋 核心功能
1. 心跳监控 💓
- 双机定期发送心跳(默认 5 分钟)
- 自动检测对端是否在线
- 心跳超时自动告警
2. 健康检查 🏥
- 内存使用率监控
- CPU 使用率监控
- PM2 进程状态检查
- 系统运行时间统计
3. 故障诊断 🔍
- 自动识别内存泄漏风险
- 检测进程异常重启
- 网络连通性诊断
4. 自动修复 🛠️
- 远程重启 OpenClaw 进程
- 发送修复建议
- 故障转移(规划中)
⚙️ 配置项
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| localHost | string | 0.0.0.0 | 本机监听地址 |
| localPort | number | 9528 | 本机监听端口 |
| remoteHost | string | - | 对端主机地址(必填) |
| remotePort | number | 9528 | 对端监听端口 |
| heartbeatInterval | number | 300000 | 心跳间隔(毫秒) |
| heartbeatTimeout | number | 30000 | 心跳超时(毫秒) |
| memoryThreshold | number | 85 | 内存告警阈值(%) |
| cpuThreshold | number | 80 | CPU 告警阈值(%) |
🔐 安全说明
- 网络隔离:建议在内部网络使用,不要暴露到公网
- 防火墙配置:仅允许对端 IP 访问心跳端口
- SSH 密钥:远程修复功能需要配置 SSH 免密登录(可选)
📊 监控指标
| 指标 | 正常值 | 告警阈值 |
|---|---|---|
| 内存使用率 | < 70% | > 85% |
| CPU 使用率 | < 50% | > 80% |
| WebSocket 连接数 | > 10 | < 5 |
| 断连频率 | < 2 次/小时 | > 5 次/小时 |
| 进程重启次数 | 0 | > 5 |
🐛 故障排查
问题 1:心跳发送失败
[Heartbeat] Failed to send: connect ECONNREFUSED
解决: 检查对端 OpenClaw 是否运行,防火墙是否开放端口
问题 2:端口被占用
Error: listen EADDRINUSE: address already in use
解决: 修改 localPort 配置,或停止占用端口的进程
问题 3:PM2 检测失败
PM2 未检测到 OpenClaw 进程
解决: 使用 PM2 启动 OpenClaw:pm2 start app.js --name openclaw
📚 相关文件
src/index.ts- 核心实现skill.json- Skill 配置package.json- 依赖管理tsconfig.json- TypeScript 配置
📝 更新日志
v1.0.0 (2026-03-27)
- ✨ 初始版本发布
- 🎯 实现双机心跳协议
- 🏥 健康检查功能
- 🔍 故障诊断功能
- 🛠️ 远程修复功能(PM2/systemd)
作者: OpenClaw Skill Master
许可: MIT
反馈: https://github.com/rfdiosuao/openclaw-skills/issues