部署 OpenClaw(ClawdBot、MoltBot)后访问localhost:18789报 1008 错误怎么办?
很多朋友部署完 OpenClaw(原 ClawdBot/MoltBot)后,兴冲冲打开浏览器访问http://localhost:18789,结果直接撞见:
Plain Text |
或
Plain Text |
控制台连不上、页面空白、服务明明在跑却一直报错。别急,这是OpenClaw 最经典的高频坑,不是部署失败,而是认证 / Token / 端口 / 配置四类问题。下面从原理到根治,一步步带你彻底解决。
一、先搞懂:1008 错误到底是什么?
1. 错误本质
1008 = WebSocket 连接被网关拒绝,认证失败。
OpenClaw Gateway(网关)默认开启Token 强认证:
- 浏览器访问控制台,必须携带与网关完全一致的 Token;
- 没有 Token、Token 错误、Token 过期、设备未配对 → 直接断开并返回 1008。
2. 常见两种 1008
- token mismatch:Token 对不上(最常见)
- pairing required:设备未授权配对(Docker / 远程访问常见)
3. 为什么直接访问localhost:18789会报错?
- 直接输地址 →不带 Token→ 被拦截;
- Gateway 重启会自动刷新 Token,浏览器缓存旧 Token → mismatch;
- Docker 环境下,localhost被识别为外部网络 → 触发配对校验。
二、7 步快速排查(从易到难,优先做)
✅ 第一步:用官方命令打开控制台(90% 人卡在这)
不要手动输地址!终端执行:
bash |
终端会输出完整带 Token 的 URL,类似:
Plain Text |
复制这个完整链接到浏览器打开,不要删减、不要只输 IP 端口。
✅ 第二步:确认 Gateway 正常运行
bash |
正确输出:
Plain Text |
如果显示stopped或端口异常:
bash |
✅ 第三步:手动拿最新 Token(解决 mismatch)
bash |
拿到 Token 后,手动拼接 URL:
Plain Text |
✅ 第四步:清除浏览器缓存 / 换无痕模式
- 浏览器缓存了旧 Token,直接访问会自动带旧值 → 1008;
- 解决:无痕模式打开,或清除localhost:18789缓存。
✅ 第五步:Docker 环境专属修复(pairing required)
Docker Desktop(macOS/Windows)下,localhost被识别为外部 IP,触发配对:
bash |
✅ 第六步:修改配置为本地信任模式(根治)
编辑配置文件~/.openclaw/openclaw.json:
json |
保存后重启:
bash |
✅ 第七步:终极诊断(仍不行时)
bash |
三、避坑关键:为什么你总是 1008?
- 不要手动拼 URL:必须用openclaw dashboard输出的完整链接;
- 重启必换 Token:每次gateway restart后,旧链接直接失效;
- Docker 别用localhost:优先用127.0.0.1或容器 IP;
- 端口别乱改:默认 18789,改端口会导致认证异常;
- 不要删配置文件:~/.openclaw/删了会重置 Token 和模式。
四、总结(一句话根治)
1008=Token 不对或模式不对。
优先用openclaw dashboard拿带 Token 的链接;Docker 切本地模式;重启后必更新链接;无痕模式打开。99% 的情况都能解决。
要不要我把以上步骤整理成一份可直接复制的一键修复脚本,你直接运行就能解决 1008 错误?