一、问题现象
在启动 OpenClaw Gateway 后,WebUI / 终端连接时出现报错:
plaintext
disconnected (1008): unauthorized: gateway token mismatch
表现为:服务已正常启动,但客户端无法连接,提示令牌不匹配或认证失败。
二、问题根因解析
1. 核心原理:OpenClaw Gateway 令牌机制
OpenClaw Gateway 采用令牌双向认证机制:
- Gateway 启动时,会自动生成或读取一个唯一的
gateway token,作为服务端认证凭证; - WebUI、TUI 等客户端连接时,必须携带完全一致的令牌,才能通过认证并建立 WebSocket 连接;
- 令牌存储在两个位置:服务端配置文件
openclaw.json的gateway.auth.token字段,以及客户端配对文件paired.json。
2. 令牌不匹配的常见原因
- 服务重启导致令牌漂移:Gateway 重启时,若未配置静态令牌,会自动生成新令牌,而客户端仍使用旧令牌,直接导致 mismatch。
- 配置变更引发令牌重置:执行
openclaw configure、修改openclaw.json或重装服务后,令牌会被重新生成,客户端未同步更新。 - 多实例 / 多用户冲突:同一设备上启动多个 OpenClaw Gateway 实例,或不同用户启动服务,会生成不同令牌,客户端连接时匹配错误。
- 令牌未同步:手动修改了服务端令牌,但未在客户端(WebUI 控制面板)中更新令牌配置。
三、解决方案(亲测有效)
你使用的三步操作,正是针对令牌不匹配问题的标准修复流程,下面详细拆解每一步的作用:
步骤 1:停止现有 Gateway 服务
openclaw gateway stop
作用:终止当前运行的 Gateway 进程,释放端口和服务状态,避免旧服务占用导致后续操作无效。
-
若进程未正常退出,可手动强制终止:
# Windows taskkill /IM openclaw.exe /F # Linux/macOS pkill -f openclaw
步骤 2:执行 openclaw dashboard --no-open
openclaw dashboard --no-open
作用:
- 读取当前配置,自动解析并生成最新的 Gateway 令牌;
- 同步更新客户端配对文件
paired.json,确保客户端令牌与服务端令牌一致; --no-open参数会跳过自动打开浏览器的步骤,直接在终端完成令牌同步,避免界面干扰。
步骤 3:重启 Gateway 服务
openclaw gateway
作用:使用同步后的最新令牌启动服务,此时客户端(WebUI/TUI)携带的令牌与服务端完全匹配,认证通过即可正常连接。