2026 OpenClaw Gateway 连接排错 RPC 探测 · gateway closed(1000) · scope / Token 与会话

OpenClaw 最常见的一类「假健康」是:openclaw gateway status 里 RPC 探测显示正常,客户端却抛出 gateway closed (1000) 或升级后工具突然不可用。本文按「症状 → 高概率根因 → 验证命令 → 修复」写清,覆盖 Token、scope、工作区路径、模型后端(含 CLI-only 导致工具禁用)三类高频坑,并给出六步恢复 Runbooksystemd / Docker 场景下该看的日志行。与站内 生产观测安全加固跨平台安装 分工:本文偏连接与会话一致性,先把路打通,再把监控与变更固化交给观测篇。

01

先把现象说准:RPC 探测 OK 不等于会话、scope 与模型后端都一致

Gateway 的控制面探针往往只回答「进程在不在、端口通不通」;而客户端报错 gateway closed (1000) 常见于WebSocket/会话被服务端主动关闭鉴权与策略未对齐之后。下面七条用于一线自检:命中越多,越不要只在 UI 里点刷新,而应按本文第三节做一轮有序重启 + 配置校验

  1. 01

    把「探针绿」当成「全链路绿」:status 里 RPC OK 只覆盖窄检查;设备类命令、工具执行通道仍可能因 scope 缺失或会话过期而失败。

  2. 02

    Token 漂移:CLI 环境变量、配置文件与 Gateway 进程启动时载入的 token 不是同一份;旋转密钥后只改了一侧会出现「偶发能连、批量失败」。

  3. 03

    工作区路径不一致:agents.defaults.workspace 指向旧目录或容器内路径映射错误时,工具层会拒绝执行或迅速断开。

  4. 04

    CLI-only 模型后端:某些 *-cli/... 路由会按设计禁用文件类工具,表现为「Gateway 在线但工具不可用」,与 closed(1000) 容易混淆。

  5. 05

    升级后双进程:包更新完成但旧 Gateway 仍占用端口或 PID 文件未清理,新进程半启动,探针命中旧监听面。

  6. 06

    安全策略收紧:刚启用 dmPolicy / networkPolicy 后,会话握手成功但首包即被策略关闭;需要对照 安全加固篇 的允许列表。

  7. 07

    缺少最小复现包:工单只截半行报错,没有 CLI 版本、配置片段与最近变更;二线只能猜,恢复时间被拉长。

这些痛点的共同根因,是把分布式系统的多层健康压缩成单一布尔值。接下来用一张表把「你看到的表象」映射到「应先验证的命令」,避免在日志海里盲游。

02

症状对照表:表象 → 高概率根因 → 建议先跑的检查

把本表贴在 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、模型后端与策略四条线。

更完整的日志与回滚节奏见 生产观测篇:本文优先让你在十分钟内判断该走「重启 + 校验」还是「配置回滚」。

03

六步恢复 Runbook:从「可连」回到「可稳定用工具」

下列顺序刻意把低成本动作放在前、把配置回滚放在后;避免一上来就改防火墙或重装。若你在生产环境,先在工单里写明「影响面:仅本机 CLI / 含多用户会话」。

  1. 01

    冻结并发操作:让同事暂时停止新开会话与批量脚本,避免你重启 Gateway 时被自动重连风暴淹没。

  2. 02

    采集状态快照:运行 openclaw --versionopenclaw status --all(若支持)并保存输出;记录最近是否旋转 token 或改过 openclaw.json

  3. 03

    校验 workspace 与模型路由:确认 workspace 指向真实目录;openclaw models list 检查是否误选 CLI-only 后端。

  4. 04

    执行 doctor / validate:按官方 CLI 提供的 openclaw doctorconfig:validate 或等价命令修正明显错配。

  5. 05

    有序重启 Gateway:openclaw gateway restart(或 systemd/docker 重启单元),确保旧进程退出后再拉起。

  6. 06

    最小验收用例:选一条只读工具调用 + 一条写文件工具调用验证;通过后再恢复他人使用。失败则进入第四节看系统日志。

bash · 排错命令流水线(示意)
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
info

提示:若 Gateway 跑在独占远程 Mac上,SSH 长会话与 GUI 弹窗仍可能打断工具链;需要稳定无人值守执行层时可结合 Agent 节点篇 的目录与会话隔离清单。

04

systemd 与 Docker:进程残留、监听面与日志该看哪几行

当第三节重启后仍出现 closed(1000),优先怀疑旧进程未退出容器内路径映射漂移。与 观测篇 一致:先把「谁在监听」「哪个用户起的」说清楚,再讨论配置。

systemd(Linux 裸机):用 systemctl status 看主进程是否反复拉起;journalctl -u <unit> -n 200 --no-pager 找关闭码与策略关键字。Docker Composedocker compose psdocker compose logs --tail=200 gateway 对齐重启时间戳。若你按 Linux systemd + Tunnel 篇 部署,还要确认 Tunnel 与本地回环绑定没有指到陈旧端口。

warning

注意:不要在未确认监听面的情况下把 Gateway 临时暴露到公网试连通;优先在 安全加固篇 约束内做验证,避免把排错变成安全事故。

05

仍失败时:最小信息收集包(给二线/厂商)

下列字段能显著缩短二次排查时间;请脱敏后再外发。

  • 版本三元组:CLI 版本、Gateway 镜像 digest 或包版本号、操作系统小版本。
  • 时间线:首次出现 closed(1000) 的 UTC 时间、前序变更(token/策略/升级)列表。
  • 日志片段:Gateway 启动到断开前后各 约 200 行,含会话 id(若有)与策略命中行。

仅依赖本机笔记电脑做 Gateway 宿主,易受睡眠、系统更新与多人桌面会话影响;纯 Linux 小机器又常缺少你需要对接的 macOS 工具链与图形边界场景。当 OpenClaw 要落在长期在线、可合同化的执行层上,把底座换成独占远程 Mac通常比反复借用设备更稳:固定 SSH、清晰磁盘档位、可与 CI/Agent 工作流对齐。相较自建机房 Mac 集群,NodeMini 的 Mac Mini 云端租赁更容易形成可复制的节点画像,让「Gateway + 工具链」真正像运维 VPS 一样可交接、可扩容。

FAQ

常见问题

探针只验证窄路径;会话、scope、token 与模型后端仍可能不一致。按本文第三节有序重启并跑 doctor/validate。需要规划执行层节点时可看 算力订购帮助中心

先看模型路由是否落在 CLI-only 后端;再确认 Gateway 是否已重启加载新配置;最后核对 workspace 路径与 token 是否旋转完整。

博客 OpenClaw 分类进入安装、systemd、Docker、安全与观测篇;连接与基线也可对照帮助中心。