在云 Mac 独占节点上跑 OpenClaw、白天看起来「偶尔不回消息」、夜里更没有值班脚本替你复核的团队,最常见的失效模式不是「某个模型挂了」,而是Gateway 进程仍在、RPC 探针却失败、频道配对卡在 pending、cron 无人盯版本漂移混在一起的复合故障。本文给出与官方 troubleshooting 对齐的诊断梯子openclaw statusopenclaw gateway status(含必要时 --deep)→ openclaw logs --followopenclaw doctoropenclaw channels status --probeopenclaw cron status / cron list;写清「Runtime running 但 Connectivity probe failed」时的端口、bind、远程 URL 分叉表,split brain 与 meta.lastTouchedVersion 签名,以及常驻场景下如何用 cron 列表补全夜间口径;与站内 安装排障清单常驻稳定性升级与远程访问 三篇交叉阅读可避免重复踩坑。
01

2026 年五条命令的诊断梯子:先把「谁在跑」对齐再谈频道与模型

OpenClaw 的 Gateway 是常驻控制平面:assistant 只是消费它的产品层。官方文档推荐的粗粒度顺序是先用 openclaw status 看会话与健康摘要,再用 openclaw gateway status 对齐 Runtime、RPC 探针目标 URL、以及 launchd 与服务配置是否一致;若只看 CLI「一切正常」却忽略服务侧 plist 仍指向旧前缀,就会在升级与小版本漂移后反复出现「偶发断连」。在云 Mac 上你把镜像冻结成 golden image 时尤其危险:全局 npm 前缀更新了一次,plist 未重装,就会出现split brain——doctor 报告无阻塞,RPC 探针失败。

在此基础上本文把可写入 Runbook 的第一屏固定为六段输出:statusgateway statuslogs --follow(短时采样即可)→ doctorchannels status --probecron statuscron list。channels 层告诉你外部入口是否 ready;cron 告诉你定时任务是否在峰值窗口把 worker 挤死或触发外部 API 限额。cron 并不是「可选运维彩蛋」,而是线上稳定性文章里最容易缺失的第二张仪表盘。

把梯子写成固定顺序的意义在于责任边界可拆分:第一层证明进程与 RPC 握手是否成立;第二层证明配置与服务监督是否一致;第三层才讨论外部频道与定时任务。多数团队在第二层之前就切换到「换模型」或「清缓存」,会把临时缓解写成永久架构债,值班记录也无法对齐同一口径。

下面五条是把新手最常犯的错误做成禁止条:违背顺序会把下游信号误判成上游模型不稳。

01

跳过 gateway status 去看 channels:频道全红可能是 Gateway 根本没 listen 对地址,单纯重登 OAuth 只会复制噪声。

02

未采样 logs 就去调温度:日志里若已是端口占用或 schema 校验失败,调模型只会放大重试风暴。

03

doctor 绿灯就当配置一致:doctor 解决 schema 与多数机械冲突,不替你证明 plist 与 CLI 同一二进制。

04

忽略 cron list:夜间归档或批量 summarization 任务可能与频道峰值重叠,表现为「白天偶发、夜里必挂」。

05

把远程 URL 探针失败当归档网络:gateway.mode=remote 指错 URL 时,本地进程仍可 running,探针却永远失败。

若尚未完成初装与 launchd,请先回到 安装排障清单;heartbeat、pm2 或常驻策略请看 常驻稳定性。本篇假设 Gateway 已能间歇工作,你要把它变成可夜班自检的生产口径。

02

对照表:Runtime running 与 RPC 探针分叉(端口、bind、远程 URL)

gateway status 同时呈现 Runtime 与 Connectivity/RPC 两类信号:前者描述进程是否由监督拉起,后者描述 CLI 视角下是否能完成探针握手。二者不一致时,应按表里优先级排查,而不是并行「重启试试看」。bind 与 token 组合策略详见 升级与远程访问,本篇只承接分叉决策。

遇到「探针失败但本地 curl loopback 正常」时,应先核对探针实际请求的 URL是否与当前 bind 一致:远程模式下 CLI 可能探测远端而服务仍监听本机,二者语义不对齐会造成永久红色。

观测组合优先怀疑下一步命令级动作
Runtime stoppedgateway.mode 缺失或被写成 remote、配置 schema 阻断启动openclaw logs --follow 抓退出签名 → doctor
Runtime running · probe failed端口占用、listen 地址与探针 URL 不一致、token 漂移lsof -i :18789(示例端口)→ 核对 gateway.bind 与探针目标 → gateway status --deep
Probe ok · channels not ready频道配对、密钥轮换、外部 API 限速channels status --probe → 检查 pairing 列表
Channels ok · 定时故障cron 与工作负载峰值重叠cron list 对照 UTC/本地时区窗
日志签名(示意)含义处理口径
Gateway start blocked: set gateway.mode=local本地模式未声明或被覆盖按官方指引写回 gateway.mode 或重跑 onboard
refusing to bind ... without auth非回环 bind 缺 tokengateway.auth.token 或退回 loopback + 隧道
EADDRINUSE遗留进程占端口结束占用或改端口后 gateway install --force

先让「Runtime 与探针」在同一叙事里闭合,再打开频道与 cron;顺序错了只会把并发重试写到日志里。

在新加坡或美西等高配 M4 Pro / 大统一内存节点上,编译类噪声与 Agent 峰值可能并存:排查时仍应坚持同一梯子,只是在采样日志窗口时适当拉长,避免把瞬时 GC 与网关握手失败混在一起。

若你把高频助理会话与夜间批处理放在同一节点上,建议在表中额外标注负载相位:交互高峰与 cron 触发窗是否重叠;一旦出现重叠,即使探针短时失败也应优先比对时间表而不是立刻迁移密钥。

03

split brain:CLI 与服务各自读到哪份 openclaw.json

当仓库文档提到「新版本写入的配置戳与老二进制冲突」时,现场表现为 doctor 通过而 Gateway 服务拒绝变更监督元数据。典型抓手包括:which openclaw 与 plist ProgramArguments 第一项是否一致;OPENCLAW_STATE_DIR 或等价 profile 是否在同一 shell 与 launchd 环境可见;以及日志是否出现「binary older than config writer」类语义。处理顺序应是对齐 PATH 与前缀 → 再用gateway install --force重写监督元数据,而不是先反复卸载重装 npm 包却在 plist 里残留旧路径。

下面示例给出「梯子串联」的最小可粘贴块;端口与 profile 目录请替换为你的环境。

bash
openclaw status
openclaw gateway status
openclaw gateway status --deep
openclaw logs --follow
openclaw doctor
openclaw channels status --probe
openclaw cron status && openclaw cron list

提示:仅在确认二进制一致后再执行 gateway install --force;边界说明见升级专题 FAQ,避免误以为 force 会替你审计完整密钥轮换。

若你在云节点上使用非回环 bind接运维隧道,请保证 token 与防火墙最小放行同步写入变更单;不要把「仅 SSH 能通」当成 Gateway 健康。

生产建议在复盘模板里强制填写采样开始与结束时间戳,以便区分间歇性认证失败与持续性端口占用;没有 timestamps 的工单不应进入架构评审。另建议保存终端会话编号以便二次复核与回放,并在工单附上日志截取片段编号

04

六步:把诊断梯子写进夜间值班表(含 cron 附加项)

01

冻结时间与窗口:标明采样日志的十分钟窗口与节点时区,避免跨日归档误判。

02

跑梯子前五段:status → gateway → logs 采样 → doctor,输出粘贴到工单。

03

频道探针留痕:channels status --probe 的结果截图或文本进入同一工单。

04

cron 对齐:cron list 与业务峰值表对照,标注冲突任务 owner。

05

binary 对齐复核:记录 openclaw --version 与 plist 路径一致性结论。

06

变更闭环:需要升配或扩节点时在 订购入口 留痕,便于财务审计。

若值班时段跨越亚太与美西交接,建议在工单模板增加交接备注字段:上一班已跑到梯子的第几步、下一班应从 channels 还是 cron 继续采样,避免重复执行前半段命令。

05

可引用口径:18789、探针与 cron 的三条硬信息

A

默认仪表盘端口:公开文档与社区排障均以 18789 类端口为默认 multiplex 监听;占用时需先解放端口再谈 force 重装。

B

探针语义:Connectivity probe 验证 RPC 可达性,与频道插件是否 ready 相互独立;二者缺一不可。

C

cron 观测:定时任务列表应与上游速率限制策略一并冻结在 Runbook,否则夜间批量会成为放大器。

注意:把 Gateway 暴露到无鉴权公网仍属高风险路径;优先 loopback 加 SSH 隧道或 Tailscale,与升级专题一致。

自建笔记本或不稳定本地链路承载 Gateway,会遇到休眠、企业同步盘锁文件与随机掉线;相比之下,在可按区域选择独占裸金属、可按租期弹性扩容、并把 SSH 与带宽写成合同字段的云节点上落地 OpenClaw,更容易把「梯子输出」变成可审计工单。需要可持续的生产控制平面与跨地区低延迟协作时,KVMNODE 的 Mac Mini 云端租赁通常是更稳妥的选择:独占 Apple Silicon、状态路径可控、并按项目节奏伸缩节点规格。

当你把同一套梯子输出挂接到变更系统时,审计侧看到的是可重复的观测链条,而不是「某位工程师昨晚重启过三次」的口述历史;这与规模化团队的合规诉求相容。