你在局域网电脑上访问盒子 IP 时遇到 origin not allowed 错误,是因为 OpenClaw 的网关默认只允许从 localhost 或 127.0.0.1 访问控制 UI,来自局域网 IP 的请求被安全策略拦截了。
? 解决方法:将你的访问来源加入 allowedOrigins 白名单
1️⃣ 确认你的盒子 IP 和访问地址
在盒子上执行 ip addr 获取局域网 IP(例如 192.168.1.100)。
你在电脑浏览器中访问的地址是 http://192.168.1.100:18789。
注意:这个地址必须完全一致(协议、IP、端口)才能通过校验。
2️⃣ 通过命令行设置白名单
SSH 登录到盒子,执行以下命令(将 192.168.1.100 替换为你的实际 IP):
openclaw config set gateway.controlUi.allowedOrigins '["http://192.168.1.100:18789", "http://localhost:18789", "http://127.0.0.1:18789"]'
如果你想允许局域网内所有 IP 访问(不推荐,有安全风险),也可以设置:
openclaw config set gateway.controlUi.allowedOrigins '["*"]'
但更安全的做法是只添加你需要使用的具体 IP。
3️⃣ 重启网关使配置生效
openclaw gateway restart
4️⃣ 验证配置是否生效
查看当前配置:
openclaw config get gateway.controlUi.allowedOrigins
输出应该包含你刚才设置的 IP 地址。
再次在电脑浏览器中访问 http://192.168.1.100:18789,应该能正常打开控制 UI 了。
❓ 如果还是不行,请检查以下事项
-
配置是否真的写入成功
用openclaw config get确认allowedOrigins已包含你的 IP。 -
防火墙是否放行 18789 端口
# 如果使用 ufw ufw status | grep 18789 # 如果使用 iptables iptables -L -n | grep 18789如果没有放行,执行
ufw allow 18789/tcp或相应命令。 -
网关服务是否正在监听 0.0.0.0
netstat -tlnp | grep 18789应显示类似
0.0.0.0:18789的监听地址。 -
尝试用 curl 测试(在盒子上执行)
curl http://127.0.0.1:18789如果有响应,说明服务正常;如果没有,检查网关状态
openclaw gateway status。 -
检查浏览器访问的 URL 是否与配置完全一致
例如配置的是http://192.168.1.100:18789,就不能用https或省略端口。
? 备选方案(如果配置白名单后仍有问题)
-
使用 SSH 隧道(无需修改配置)
在你的电脑上执行:ssh -L 18789:localhost:18789 root@192.168.1.100然后浏览器访问
http://localhost:18789,流量通过 SSH 加密转发,origin 自动为localhost,不会触发拦截。 -
临时启用 fallback 模式(不推荐长期使用)
openclaw config set gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback true openclaw gateway restart
按上述步骤操作后,应该能顺利访问控制 UI。如果还有问题,请把 openclaw config get gateway.controlUi.allowedOrigins 的输出和浏览器地址栏的完整 URL 告诉我,我帮你具体分析。


失落的羊9 个月前
研究计划导入公众号文章。
失落的羊1 年前
研究插件:挂载点研究、文件读写研究、API读取数据、设置、前台显示
失落的羊1 年前
今日申请十年之约博客成员!
失落的羊1 年前
启用新的访问统计.
失落的羊1 年前
重新整理长篇连载栏目