2026年远程访问群晖:-远程控制 OpenClaw:从群晖 Docker 到本地浏览器的完整隧道指南

远程访问群晖:-远程控制 OpenClaw:从群晖 Docker 到本地浏览器的完整隧道指南背景 OpenClaw 是一个强大的浏览器自动化框架 其核心服务通常运行在服务器端 如群晖 NAS 而控制端则是本地的 Chrome 浏览器插件 OpenClaw Browser Relay 插件默认只连接本地的 127 0 0 1 18792 无法直接与远程服务通信 因此 我们需要建立一条安全的隧道 将远程服务的端口映射到本地 让插件 以为 服务就在本地 本文记录了在群晖

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



背景

OpenClaw 是一个强大的浏览器自动化框架,其核心服务通常运行在服务器端(如群晖 NAS),而控制端则是本地的 Chrome 浏览器插件 OpenClaw Browser Relay。插件默认只连接本地的 127.0.0.1:18792,无法直接与远程服务通信。因此,我们需要建立一条安全的隧道,将远程服务的端口映射到本地,让插件“以为”服务就在本地。

本文记录了在群晖 NAS(通过 Docker 运行 OpenClaw)与 Windows 本地电脑之间实现这一目标的全过程,包括踩坑与解决方案。所有敏感信息均已脱敏。

环境

- 远程服务器:群晖 DS220+,IP 192.168.1.100(示例)

- OpenClaw 部署方式:Docker Compose(容器名 openclaw-openclaw-gateway-1

- 本地电脑:Windows 11,PowerShell

- 目标:通过 SSH 隧道,将群晖上的 OpenClaw 服务端口映射到本地的 18792,使浏览器插件能远程控制浏览器。

第一步:SSH 隧道基础尝试

最初的想法很简单:在本地执行 SSH 端口转发命令,将远程端口映射到本地。

bash

ssh -L 18792:127.0.0.1:18792 user@192.168.1.100 -N

遇到的错误

错误 1ssh: command not found(Windows 未安装 OpenSSH 客户端)  

解决:在 Windows 设置中安装“OpenSSH 客户端”可选功能,或通过 PowerShell 安装。

错误 2channel 2: open failed: administratively prohibited: open failed  

原因:群晖的 SSH 服务默认禁用了 TCP 端口转发。  

解决:以 root 登录群晖,编辑 /etc/ssh/sshd_config,确保以下两行存在且未被注释:

AllowTcpForwarding yes

PermitOpen any

然后重启 SSH 服务:

bash

synoservicectl --restart sshd

错误 3Permission denied, please try again.(密码错误或认证失败)  

排查:直接用 ssh user@192.168.1.100 测试登录,确认密码无误。最终通过 ssh -v 调试发现是密码输入问题,重试后成功。

第二步:隧道终于建立,但本地访问被拒绝

再次执行 SSH 隧道命令:

bash

ssh -L 18792:127.0.0.1:18792 user@192.168.1.100 -N

输入密码后,窗口停留在光标闪烁状态(正常)。但浏览器访问 http://127.0.0.1:18792 时,SSH 窗口出现错误:

channel 2: open failed: connect failed: Connection refused

这说明本地 18792 端口已经监听,但转发到远程的 127.0.0.1:18792 时,远程没有服务在监听。显然,OpenClaw 并没有监听这个端口。

第三步:查找 OpenClaw 的真实端口

通过 SSH 登录群晖,查看 Docker 容器端口映射:

bash

docker ps | grep openclaw

输出:

dcd1b6c4a45c   nginx:alpine     ...   0.0.0.0:8443->443/tcp   openclaw-nginx

5f05be4dd7a2   openclaw:local   ...   0.0.0.0:18789-18790->18789-18790/tcp   openclaw-openclaw-gateway-1

可以看到,OpenClaw 网关容器将宿主机的 18789-18790 端口映射到了容器内。为了确定具体是哪个端口用于插件通信,在群晖上直接 curl 测试:

bash

curl http://127.0.0.1:18789   # 返回了 OpenClaw 控制界面的 HTML

curl http://127.0.0.1:18790   # Connection refused

因此,真实端口是 18789

第四步:调整 SSH 隧道命令

终止原来的 SSH 隧道,重新执行:

bash

ssh -L 18792:127.0.0.1:18789 user@192.168.1.100 -N

再次访问 http://127.0.0.1:18792,这次 SSH 窗口没有报错,但浏览器显示:

unauthorized: gateway token missing

这说明隧道已通,但 OpenClaw 要求认证。

第五步:获取并设置网关令牌

OpenClaw 默认使用 token 认证模式,需要在浏览器中设置令牌。

在群晖上查看/生成令牌

进入 OpenClaw 的 docker-compose 目录(例如 /volume1/docker/openclaw),执行:

bash

docker compose exec openclaw-gateway node dist/index.js config get gateway.auth.token

如果返回空,则生成新令牌:

bash

docker compose exec openclaw-gateway node dist/index.js doctor --generate-gateway-token

得到类似 ocw_xxxxxx... 的令牌字符串,完整复制。

在浏览器中设置令牌

访问 http://127.0.0.1:18792,页面显示 unauthorized,同时有一个输入框要求粘贴 Gateway Token。将令牌粘贴并保存,刷新页面,控制界面正常加载。

此时,OpenClaw Browser Relay 插件图标也应变为橙色 ON,表示已成功连接。

第六步:处理设备批准(如果仍无法连接)

某些情况下,即使设置了令牌,仍需要批准设备。在浏览器访问后,OpenClaw 会生成一个 pending 设备请求。查看待处理设备:

bash

docker compose exec openclaw-gateway node dist/index.js devices list

输出可能包含多行,状态为 pending 的即为待批准。例如:

Request ID                              Device ...    Status

a-2fc2-42bb-841b-83553e5032f1    ...           pending

批准该请求:

bash

docker compose exec openclaw-gateway node dist/index.js devices approve a-2fc2-42bb-841b-83553e5032f1

刷新浏览器,一切正常。

总结

整个过程中,关键点如下:

1. SSH 隧道:必须确保远程 SSH 服务允许 TCP 转发(修改 sshd_config)。

2. 端口确认:Docker 映射的端口可能不是默认的 18792,需要实际探测。

3. 认证:OpenClaw 需要网关令牌,必须正确配置。

4. 设备批准:如果启用设备配对,还需批准浏览器的连接请求。

最终,通过 ssh -L 18792:127.0.0.1:18789 user@remote-ip -N 隧道,我们成功将群晖上的 OpenClaw 服务映射到本地,实现了通过浏览器插件远程控制。

附录:常用命令速查

- 建立隧道(保持窗口打开):  

  ssh -L 18792:127.0.0.1:18789 user@192.168.1.100 -N

- 查看 Docker 端口映射:  

  docker ps | grep openclaw

- 在容器内执行命令:  

  docker compose exec openclaw-gateway node dist/index.js [command]

- 查看网关令牌:  

  docker compose exec openclaw-gateway node dist/index.js config get gateway.auth.token

- 批准设备:  

  docker compose exec openclaw-gateway node dist/index.js devices approve

- 查看待处理设备:  

  docker compose exec openclaw-gateway node dist/index.js devices list

希望这篇记录能帮助遇到类似问题的朋友们。如有疑问,欢迎交流!

小讯
上一篇 2026-03-15 22:51
下一篇 2026-03-15 22:49

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/237278.html