OpenClaw 局域网访问

OpenClaw 局域网访问教程:完美解决 origin not allowed 与 Token 报错

Spread the love

对于喜欢在自己的服务器上部署本地 AI 模型和自动化助手的玩家来说,OpenClaw 绝对是一个不可多得的神兵利器。

但在实际部署时,你大概率会遇到一个让人抓狂的问题:只要你不用官方推荐的 Tailscale,想直接在局域网(LAN)的另一台电脑上访问 OpenClaw 的控制面板,就会遭遇疯狂的报错拦截。 OpenClaw 的安全机制极其严苛,默认只允许 localhost 本机访问。今天,我将带你一步步手撕这些限制,从配置文件到浏览器安全策略,教你如何优雅、安全地在局域网内全面接管你的 OpenClaw 网关。


第一关:配置文件报错与网络绑定 (Bind)

一开始,很多人(包括我)的直觉是去修改 /home/hhdz/.openclaw/openclaw.json 配置文件,把 gateway.mode 改成 0.0.0.0,或者自己生造一个 "host": "0.0.0.0"。结果一重启,网关直接崩溃:

Invalid config: gateway.bind host aliases (for example 0.0.0.0/localhost) are legacy; use bind modes instead.

💡 破局方法: 新版 OpenClaw 已经废弃了填写 IP 地址的旧做法。正确的做法是使用内置的“绑定模式”。打开你的 openclaw.json,在 gateway 节点下,保留 "mode": "local",并添加 "bind": "lan"

"gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "lan",
    // ...

注意:每一行末尾的英文逗号 , 千万别漏了!


第二关:跨域拦截 (Origin not allowed)

改完网络绑定,终于能在局域网浏览器里打开页面了,但页面中央赫然一行红字:

origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)

这是 OpenClaw 后端的跨域保护机制。它发现你是从 192.168.x.x 访问的,不在它的默认信任名单(仅限 localhost)里。

💡 破局方法: 再次请出配置文件,在 gateway 中手动添加一个允许放行的白名单 controlUi。为了在家庭局域网内方便使用,我们可以直接用 * 通配符放行所有来源:

"controlUi": {
      "allowedOrigins": [
        "*"
      ]
    },

第三关:浏览器的“安全上下文”背刺

就在你以为万事大吉,重启服务刷新页面时,新报错又来了:

control ui requires device identity (use HTTPS or localhost secure context)

注意,这锅不归 OpenClaw 背,是你使用的浏览器(Chrome/Edge)拦截的。 OpenClaw 的面板需要用到高级的设备身份密钥 API,而现代浏览器规定,只有在 HTTPS 或 127.0.0.1 下才允许调用这些 API。局域网 HTTP 直连会被判定为“不安全”。

💡 破局方法(无需配置 HTTPS): 在你要访问控制面板的局域网电脑上,打开 Chrome 或 Edge 浏览器,在地址栏输入:

  • Chrome: chrome://flags/#unsafely-treat-insecure-origin-as-secure
  • Edge: edge://flags/#unsafely-treat-insecure-origin-as-secure

找到 Insecure origins treated as secure 选项,在文本框里填入你服务器的局域网地址(例如 http://192.168.1.100:18789),然后将右侧开关改为 Enabled。重启浏览器,报错消失!


第四关:通行证与设备配对 (Token & Pairing)

突破了浏览器的限制,OpenClaw 亮出了它的最后两道底线:密码和设备授权。

1. 缺失 Token (unauthorized: gateway token missing) 你需要向网关证明你是主人。在服务器终端的启动日志中,或者 openclaw.jsonauth 节点下,找到你的专属 Token 字符串。 然后在浏览器的地址栏后面加上 ?token=你的Token密码,敲回车访问。

2. 设备未配对 (pairing required) Token 输入正确后,网关依然会防备你这个“新面孔”。此时,你需要切回服务器的终端(SSH 界面),执行以下命令查看拦截记录:

openclaw devices list

找到那条处于 Pending 状态的记录的 ID,然后一锤定音,批准该设备:

openclaw devices approve <你的设备ID>

(或者直接运行 openclaw devices approve --latest 批准最新请求)

🎉 大功告成

回到局域网电脑,刷新浏览器,右上角的健康状况终于亮起了绿色的 “在线” 标志!

OpenClaw 堪称变态的安全机制确实给初学者设置了不小的门槛,但这也侧面印证了它在保护我们本地 AI 隐私数据上的用心。按照本文的四步走,你可以在不折腾证书、不装 Tailscale 的情况下,完美实现局域网的自由掌控。

如果你在部署本地大模型或者折腾 Docker 时还有其他疑问,欢迎在评论区交流!

Leave a Reply Cancel reply