OpenClaw 的 Dashboard 是 Gateway 自带的浏览器控制台,用来管理聊天、配置、会话和执行审批。它默认挂在根路径 /。
默认地址
本地 Gateway 启动后,控制台默认可从下面任一地址打开:
http://127.0.0.1:18789/
http://localhost:18789/
如果你修改了 gateway.port,需要把 18789 替换成你自己的端口。
最推荐的打开方式
官方推荐的方式不是手动拼链接,而是直接执行:
openclaw dashboard
这样做的好处是:
- CLI 会输出带 token 的正确链接。
- 如果环境允许,它会直接帮你打开浏览器。
- 在无头环境下,它会给出适合 SSH 场景的提示。
为什么会看到 unauthorized
官方说明里很明确:Dashboard 的认证是在 WebSocket 握手时通过 connect.params.auth 完成的,依赖 gateway.auth.token 或 OPENCLAW_GATEWAY_TOKEN。
如果你直接访问:
http://127.0.0.1:18789/
但当前浏览器还没有存过 token,就会看到 unauthorized。
这时最稳妥的处理方式是:
openclaw dashboard
然后使用 CLI 输出的带 ?token=... 的链接。
token 是怎么保存的
官方 Dashboard 文档说明:
- token 最初通过查询参数进入页面。
- UI 在首次加载后会移除这个查询参数。
- 随后它会把 token 保存到
localStorage。
所以第一次登录后,后续同一浏览器通常不需要再手动带 token。
如果你看到 unauthorized / 1008
官方建议按下面顺序排查:
- 重新执行
openclaw dashboard,获取新的带 token 链接。 - 用
openclaw status确认 Gateway 本地可达。 - 如果是远程主机,先建立 SSH 隧道:
ssh -N -L 18789:127.0.0.1:18789 user@host
然后再打开:
http://127.0.0.1:18789/?token=...
- 检查你在 Dashboard 里填入的 token 是否与
gateway.auth.token或OPENCLAW_GATEWAY_TOKEN一致。
本地访问和远程访问的区别
本地访问:
- 直接访问
127.0.0.1即可。 - 认证失败时优先使用
openclaw dashboard。
远程访问:
- 官方优先推荐 Tailscale Serve 或 SSH 隧道。
- 如果
gateway.auth.allowTailscale: true,通过 Tailscale Serve 访问时可以不走 token。 - 如果不是 localhost,必须明确考虑认证和暴露面。
不要直接公开暴露 Dashboard
官方文档把控制 UI 明确描述为“管理界面”,它不仅能聊天,还能改配置、处理执行审批。
因此建议:
- 优先只在 localhost 打开。
- 远程访问优先用 Tailscale Serve。
- 其次用 SSH 隧道。
- 不要直接把它暴露到公网。
为什么通过 HTTP 打开局域网地址会失败
官方故障排查页提到一个很关键的问题:
- 如果你通过
http://<lan-ip>:18789/或http://<tailscale-ip>:18789/打开控制台,浏览器会把它当成非安全上下文。 - 这会导致 WebCrypto 无法正常生成设备身份,从而出现
device identity required或connect failed。
更稳的处理方式:
- 优先通过 Tailscale Serve 使用 HTTPS。
- 或者在 Gateway 主机本机上打开
http://127.0.0.1:18789/。 - 如果你必须走纯 HTTP,则需要启用:
{
"gateway": {
"controlUi": {
"allowInsecureAuth": true
}
}
}
但官方也强调,这种方式只适合你明确知道风险的场景。
一个最稳的本地工作流
如果你只是个人使用,建议直接按这个流程走:
openclaw onboard --install-daemonopenclaw gateway --port 18789openclaw dashboard- 用 CLI 给出的带 token 链接打开浏览器
这样最省事,也最接近官方推荐路径。