前言
好消息,绿联自带了openclaw部署
坏消息,远程访问绿联的openclaw的话,会遇到device identity required的问题
遇到的两大“拦路虎”
现象一:HTTP 直连报 “Device Identity Required”
最初,我尝试直接从绿联 NAS 的 IP 地址通过 HTTP 访问 OpenClaw (http://192.168.x.x:端口)。

- 表现:页面能打开,但在输入 Token 后,系统一直提示
device identity required,无法进入主界面。 - 原因:OpenClaw 出于安全考虑,强制要求设备指纹生成必须在 安全上下文 (Secure Context) 中进行。浏览器认为
http://IP是不安全的,因此拒绝生成设备身份凭证。 - 结论:必须使用 HTTPS 才能通过身份验证。
现象二:HTTPS 反向代理报 “Disconnected (1006)”
为了解决第一个问题,我在群晖 NAS 上配置了反向代理:
来源:
https://我的域名:自定义端口(群晖)目的地:
http://绿联内网IP:OpenClaw端口(绿联)
配置完成后,通过 https://我的域名:端口 访问:
- 表现:登录界面正常加载,Token 也能填入,但一旦尝试连接,界面立刻断开,控制台报错:
Disconnected (1006): no reason
- 原因:OpenClaw 的前端强依赖 WebSocket 进行实时通信。群晖的反向代理默认只处理普通 HTTP 请求,**不会自动转发 WebSocket 的升级握手 (Upgrade Handshake)**。导致连接建立瞬间被切断。
终极解决方案
要完美运行 OpenClaw,我们需要完成两步走:启用 HTTPS(解决身份验证)+ 配置 WebSocket 标头(解决 1006 断开)。
由于我的应用跑在绿联,网关在群晖,所以关键配置需要在群晖的反向代理中完成。
第一步:确认基础连通性
确保你的绿联 NAS 固定了内网 IP(例如 192.168.1.50),并且 OpenClaw 容器端口(假设是 18789)在局域网内可通过 http://192.168.1.50:18789 正常访问(虽然会报身份错误,但页面能出来说明网络是通的)。
第二步:在群晖 NAS 配置反向代理 (关键)
登录你的 群晖 DSM 后台,进行以下操作:
进入设置入口:
- 打开 控制面板 (Control Panel) > **登录门户 (Login Portal)**。
- 点击 高级 (Advanced) 选项卡 > **反向代理服务器 (Reverse Proxy)**。
编辑规则:
找到你为 OpenClaw 创建的规则(来源是
https://域名,目的地是http://绿联IP)。选中它,点击 **编辑 (Edit)**。
**添加 WebSocket 支持 (核心步骤)**:
- 点击窗口下方的 自定义标头 (Custom Header) 按钮。
- 点击 **创建 (Create)**。
方案 A:如果有预设模板(推荐)
- 在下拉菜单中直接选择 WebSocket。群晖会自动填入所需配置。
方案 B:手动添加(如果没有模板)
- 你需要手动添加两条标头,请严格按照以下内容填写:
标头 (Header) 值 (Value) 说明 Upgrade$http_upgrade告诉后端升级协议 Connectionupgrade保持连接升级状态 (可选优化) 为了防止长时间无操作断开,建议再添加一条:
|Proxy-Read-Timeout|600| 增加读取超时时间 |
保存生效:
- 点击 保存 关闭标头窗口。
- 再次点击主窗口的 保存 应用规则。
第三步:清理缓存并验证
配置完成后,浏览器的旧缓存可能会干扰测试。
- 强制刷新:按
Ctrl + F5(Windows) 或Cmd + Shift + R(Mac)。 - 无痕模式测试:打开浏览器无痕窗口,访问
https://你的域名:端口。
预期结果:
- 页面正常加载,不再提示
device identity required(因为现在是 HTTPS 环境)。 - 输入 Token 后,左下角状态指示灯变为 **绿色 (Connected)**。
- 不再出现
Disconnected (1006)报错,可以正常与 AI 交互。
原理解析:为什么要这么做?
很多用户会疑惑,为什么简单的反向代理不行?
- 关于 Device Identity:现代浏览器(Chrome, Edge, Safari)的安全策略规定,涉及敏感权限(如生成唯一设备指纹)的操作,必须在
HTTPS或localhost环境下进行。这就是为什么 HTTP 直连会被拦截。通过群晖配置 HTTPS 证书,我们满足了这一安全要求。 - 关于 Error 1006:OpenClaw 不是普通的静态网站,它是一个实时应用。前端需要通过 WebSocket 长连接向后端发送指令和接收日志流。
- 普通 HTTP 请求是“一问一答”。
- WebSocket 请求需要先发送一个
Upgrade: websocket的握手包。 - 群晖默认的反向代理配置会忽略这个特殊的握手包,直接将其当作普通 HTTP 请求转发给绿联,绿联的 OpenClaw 收到后觉得“这不是个合法的 WS 请求”,于是直接断开连接,浏览器就收到了
1006(异常关闭) 错误。 - 我们添加的
Upgrade和Connection标头,就是明确告诉群晖:“如果遇到带有升级头的请求,请不要拦截,原样透传给后端,并维持长连接。”
总结
在 绿联 NAS 部署应用 + 群晖 NAS 做反向代理 的混合架构中,部署 OpenClaw 的关键点在于:
- 必须启用 HTTPS:解决浏览器的安全策略限制 (
device identity required)。 - 必须配置 WebSocket 标头:在群晖反向代理中手动添加
Upgrade和Connection标头,解决实时通信断开问题 (1006)。
只要做好这两步,无论你的应用跑在绿联、威联通还是其他 Docker 设备上,只要通过群晖统一出口,都能完美运行。
如果没有群晖的话,Lucky也可以!!!很火的一个docker容器!!绿联也自带了!!
希望这篇跨品牌部署教程能帮到你!如果你的 NAS 组合更复杂,欢迎在评论区交流。
参考链接: