2026 OpenClaw 网关排障 Runbook:从官方 command ladder 到 gateway install --force——解决「Runtime: stopped」、18789 端口占用与非 loopback 绑定鉴权失败(Mac 云 7×24)

升级或换机后最常见不是「模型坏了」,而是网关 Runtime 显示 stopped、18789 被旧进程占住、或把 bind 改成 lan/tailnet 却未配 gateway.auth。本文写给已在 Mac 云或自建 macOS 上跑 OpenClaw、需要可抄值班 Runbook 的运维:先按官方推荐的 command ladder 收集证据,再用 gateway status --deep 区分「CLI 配置」与「launchd 服务」漂移;明确何时应执行 gateway install --forcegateway restart;最后给出 Mac 云 7×24 下 plist 与日志路径、升级后三条验收与 FAQ。读完你应能把「凭感觉重启」收敛为可复现步骤。

在 Mac 云终端中对 OpenClaw 网关执行 status、gateway status --deep 与 install --force 排障的示意图

本文要点

1. 导语:为何先 ladder 再谈模型与通道

OpenClaw 网关同时承载本地 RPC、控制面健康检查与通道插件:「通道不回」与「Runtime: stopped」表象相似,根因常在控制面。若跳过 openclaw statusopenclaw gateway status 直接改模型或重登 IM,容易把「非 loopback 未配 gateway.auth.token」误判成「提供商 429」,把「旧 launchd 单元仍占 18789」误判成「Docker 网络坏了」。2026 年官方 troubleshooting 推荐的最低纪律仍是固定顺序:statusgateway statuslogsdoctor →(必要时)channels status --probe;仅在证据指向服务元数据陈旧时,再进入 gateway install --force 与重启。下文先把四条高频痛点拆开,再给分流表与可执行步骤。

2. 痛点拆解:stopped、端口、bind/auth、服务漂移

  1. Runtime: stopped:常见于升级后 stricter 默认、gateway.mode 丢失或未设 local;也可能只是 launchd 单元未加载成功,CLI 仍读旧 home 下配置。
  2. 18789 EADDRINUSE:旧网关进程、并行 Docker 映射或遗留 launchd 任务未退出;需用 lsof -i :18789gateway status --deep 对照「谁持有监听」。
  3. 非 loopback 绑定鉴权:将 gateway.bind 设为 lan/tailnet/custom 时,若未配置 gateway.auth 或 token 漂移,日志会出现 refusing to bind 类提示;这与模型侧超时无关。
  4. CLI 与服务配置不一致:同一台 Mac 云既用终端调试又用 launchd 托管时,Config (cli)Config (service) 路径不一致会导致「终端里好了、服务仍起不来」;gateway install --force 用于把服务元数据与当前 profile 对齐。

3. 症状 → 根因分流表

现象优先根因第一反应(避免)
Runtime: stopped 且日志提示 gateway.mode配置缺失或被覆盖先重装整包依赖
启动即 EADDRINUSE 18789旧进程/重复服务单元改随机端口逃避
非 loopback 绑定失败gateway.auth 未对齐把 bind 改回 0.0.0.0 却不设 token
CLI 正常、launchd 仍失败服务安装漂移仅手动 node 拉起而不修单元
值班纪律:任何 install --force 前截取 gateway status --deep 与最近 200 行日志时间窗,便于区分一次性事故与配置漂移。

4. 落地步骤:ladder → deep → install --force(≥5 步)

  1. 跑官方 ladderopenclaw statusopenclaw gateway statusopenclaw logs --follow(短窗)→ openclaw doctoropenclaw channels status --probe;期望 gateway status 出现 Runtime: running 与探针 ok。
  2. 加深扫描openclaw gateway status --deep 对照「CLI vs service」路径、重复单元提示、端口占用摘要。
  3. 修复绑定与鉴权:若必须非 loopback,补齐 gateway.auth.mode/gateway.auth.token 与反向代理或 Tailscale 策略;否则先把 bind 收敛到 loopback 验证通路。
  4. 处理 18789 冲突lsof -i :18789 定位 PID;优雅退出旧网关后再启动;Docker 场景核对是否双容器映射同一宿主机端口。
  5. 对齐服务元数据:当 deep 显示安装漂移或升级后单元未刷新时执行 openclaw gateway install --force,随后 openclaw gateway restart,再用 ladder 前两条验收。

示例:在确认非生产调试可短暂停机时,可用下列顺序(按环境替换路径与用户):

openclaw gateway status --deep # 若提示 service metadata / Config(service) 与 CLI 不一致: openclaw gateway install --force openclaw gateway restart openclaw gateway status openclaw channels status --probe

5. 可引用技术信息:端口、探针与 plist 字段

6. Mac 云与替代方案局限:为何长期仍推荐独占 Mac 节点

共用 Linux VPS 或临时容器里硬跑网关,短期可验证功能,但会遇到三类长期成本:内核与 launchd 语义不一致导致排障手册无法复用到 macOS 真机;端口与卷权限漂移让 18789 与日志路径更难对齐值班;安全面更难做到「最小暴露 + 可审计 Token」与团队 SSH 习惯统一。相较之下,租赁 VPSMAC 的 M4 Mac 云节点能把网关与通道放在原生 launchd + 独占磁盘上,按本文 ladder 与 install --force 流程即可与站内 Docker Compose、生产加固长文衔接;需要收敛暴露面与 Token 轮换时,请继续阅读 OpenClaw 生产加固专题完成闭环。