Gateway 的控制面探针往往只回答「进程在不在、端口通不通」;而客户端报错 gateway closed (1000) 常见于WebSocket/会话被服务端主动关闭或鉴权与策略未对齐之后。下面七条用于一线自检:命中越多,越不要只在 UI 里点刷新,而应按本文第三节做一轮有序重启 + 配置校验。
把「探针绿」当成「全链路绿」:status 里 RPC OK 只覆盖窄检查;设备类命令、工具执行通道仍可能因 scope 缺失或会话过期而失败。
Token 漂移:CLI 环境变量、配置文件与 Gateway 进程启动时载入的 token 不是同一份;旋转密钥后只改了一侧会出现「偶发能连、批量失败」。
工作区路径不一致:agents.defaults.workspace 指向旧目录或容器内路径映射错误时,工具层会拒绝执行或迅速断开。
CLI-only 模型后端:某些 *-cli/... 路由会按设计禁用文件类工具,表现为「Gateway 在线但工具不可用」,与 closed(1000) 容易混淆。
升级后双进程:包更新完成但旧 Gateway 仍占用端口或 PID 文件未清理,新进程半启动,探针命中旧监听面。
安全策略收紧:刚启用 dmPolicy / networkPolicy 后,会话握手成功但首包即被策略关闭;需要对照 安全加固篇 的允许列表。
缺少最小复现包:工单只截半行报错,没有 CLI 版本、配置片段与最近变更;二线只能猜,恢复时间被拉长。
这些痛点的共同根因,是把分布式系统的多层健康压缩成单一布尔值。接下来用一张表把「你看到的表象」映射到「应先验证的命令」,避免在日志海里盲游。
把本表贴在 on-call 手册顶部:先对齐「你看到的字符串」,再选最短验证路径。具体子命令以你安装的 OpenClaw 版本为准,下列用示意命令名表达意图。
| 你看到的表象 | 高概率根因 | 建议先跑的检查 |
|---|---|---|
| RPC OK,但操作设备/通道时报 closed(1000) | 会话 scope 与实际操作不一致,或 Token 与 Gateway 启动环境不一致 | openclaw status --all;核对 token 来源;对照安全配置中的 allowlist |
| 升级后「工具全灰」 | 模型后端切到 CLI-only;或 Gateway 未重启加载新配置 | openclaw models list;改回非 CLI 路由后 openclaw gateway restart |
| 偶发成功、批量失败 | 多终端多 token;或反代缓存了旧连接 | 统一从单一 shell 导出 env;清理客户端会话;检查反代 idle timeout |
| 路径类工具拒绝执行 | workspace 配置与真实 repo 路径不一致 | openclaw config get agents.defaults.workspace 与磁盘实际路径 diff |
| 策略变更后立刻断开 | dmPolicy / networkPolicy 收紧后首包被拒 | 回读 安全加固篇 片段;临时放宽到已知会话做验证 |
「探针绿」只证明控制面还活着;要证明「你能稳定干活」,还必须对齐 token、workspace、模型后端与策略四条线。
更完整的日志与回滚节奏见 生产观测篇:本文优先让你在十分钟内判断该走「重启 + 校验」还是「配置回滚」。
下列顺序刻意把低成本动作放在前、把配置回滚放在后;避免一上来就改防火墙或重装。若你在生产环境,先在工单里写明「影响面:仅本机 CLI / 含多用户会话」。
冻结并发操作:让同事暂时停止新开会话与批量脚本,避免你重启 Gateway 时被自动重连风暴淹没。
采集状态快照:运行 openclaw --version、openclaw status --all(若支持)并保存输出;记录最近是否旋转 token 或改过 openclaw.json。
校验 workspace 与模型路由:确认 workspace 指向真实目录;openclaw models list 检查是否误选 CLI-only 后端。
执行 doctor / validate:按官方 CLI 提供的 openclaw doctor、config:validate 或等价命令修正明显错配。
有序重启 Gateway:openclaw gateway restart(或 systemd/docker 重启单元),确保旧进程退出后再拉起。
最小验收用例:选一条只读工具调用 + 一条写文件工具调用验证;通过后再恢复他人使用。失败则进入第四节看系统日志。
openclaw --version openclaw status --all 2>&1 | tee /tmp/openclaw-status.txt openclaw config get agents.defaults.workspace openclaw models list openclaw doctor openclaw gateway restart # 然后:用最小工具用例各跑一次(读 + 写)验证会话与 scope
提示:若 Gateway 跑在独占远程 Mac上,SSH 长会话与 GUI 弹窗仍可能打断工具链;需要稳定无人值守执行层时可结合 Agent 节点篇 的目录与会话隔离清单。
当第三节重启后仍出现 closed(1000),优先怀疑旧进程未退出或容器内路径映射漂移。与 观测篇 一致:先把「谁在监听」「哪个用户起的」说清楚,再讨论配置。
systemd(Linux 裸机):用 systemctl status 看主进程是否反复拉起;journalctl -u <unit> -n 200 --no-pager 找关闭码与策略关键字。Docker Compose:docker compose ps 与 docker compose logs --tail=200 gateway 对齐重启时间戳。若你按 Linux systemd + Tunnel 篇 部署,还要确认 Tunnel 与本地回环绑定没有指到陈旧端口。
注意:不要在未确认监听面的情况下把 Gateway 临时暴露到公网试连通;优先在 安全加固篇 约束内做验证,避免把排错变成安全事故。
下列字段能显著缩短二次排查时间;请脱敏后再外发。
仅依赖本机笔记电脑做 Gateway 宿主,易受睡眠、系统更新与多人桌面会话影响;纯 Linux 小机器又常缺少你需要对接的 macOS 工具链与图形边界场景。当 OpenClaw 要落在长期在线、可合同化的执行层上,把底座换成独占远程 Mac通常比反复借用设备更稳:固定 SSH、清晰磁盘档位、可与 CI/Agent 工作流对齐。相较自建机房 Mac 集群,NodeMini 的 Mac Mini 云端租赁更容易形成可复制的节点画像,让「Gateway + 工具链」真正像运维 VPS 一样可交接、可扩容。
先看模型路由是否落在 CLI-only 后端;再确认 Gateway 是否已重启加载新配置;最后核对 workspace 路径与 token 是否旋转完整。
从 博客 OpenClaw 分类进入安装、systemd、Docker、安全与观测篇;连接与基线也可对照帮助中心。