2台OpenClaw+多台电脑基于Tailscale连接在一起工作(下)
文章目录
总结下来其实就2步
Unbuntu上开启ssh服务
Windows Node Host 配置
确认状态
安装过程的报错记录
Ubuntu 上批准 Node 配对
欢迎回来,这是系列的第二部分。在上一篇文章中,我们已经成功将主Gateway加入到Tailscale网络,实现了跨设备的访问。那么接下来要做什么呢?很简单,我们要把迷你主机上的OpenClaw,以Node的形式,加入到整个OpenClaw集群中去。
最终要实现的效果,是构建一个如下图所示的一主一从协作架构:
总结下来其实就2步
整个过程听起来复杂,但核心操作只有两个关键动作。需要先通过SSH命令建立起一条稳定的通信隧道,后续的步骤才会顺畅无阻。
第一步,使用 ssh -N -L 命令建立安全的端口转发通道。
第二步,执行 openclaw node run 命令启动Node服务。
Unbuntu上开启ssh服务
首先,得确保作为主Gateway的那台Ubuntu机器,SSH服务已经就绪。检查方法很直接:
sudo systemctl status ssh
如果系统提示“Unit ssh.service could not be found”,别慌,这仅仅意味着服务尚未安装。按顺序执行下面几条命令即可:
# 更新软件源并安装openssh-server
sudo apt update
sudo apt install openssh-server
# 再次确认ssh服务状态
sudo systemctl status ssh
安装完成后,你可能会看到服务状态显示为“inactive (dead)”,这是正常情况,它只表示服务没有默认启动。当有连接请求时,systemd的socket激活机制会处理它。
Windows Node Host 配置
配置完服务端,现在回到作为Node的迷你主机(此处以Windows为例)上操作。这里才是重头戏。
首先,建立一个到Gateway的SSH隧道,将远程端口映射到本地:
ssh -N -L 18789:localhost:18789 user@xxxx.tailxxxx.ts.net
首次连接时,通常会遇到主机密钥确认的提示,输入“yes”并继续即可。随后,输入Ubuntu主机的用户密码,这条安全的通信链路就建立起来了。
接下来,需要新打开一个命令行窗口,设置环境变量并启动Node。这里有个关键点:--host 参数要指向 localhost,因为我们刚刚已经通过SSH隧道把远程的18789端口“搬”到了本地。
# 设置Gateway的认证Token
$env:OPENCLAW_GATEWAY_TOKEN = “你的Ubuntu-Gateway-token”
# 通过本地隧道启动Node Host
openclaw node run --host localhost --port 18789 --display-name “Windows-Node”
确认状态
命令执行后,如何验证是否成功?很简单,回到Ubuntu主机上,执行一个状态查询命令:
openclaw nodes status
如果配置一切正确,你会看到Node已经成功注册并在线,如下图所示:
同时,在OpenClaw Gateway的Web管理界面中,也应该能看到这个新加入的“Windows-Node”,就像这样:
安装过程的报错记录
当然,实际操作很少一帆风顺。下面这个报错就非常典型,如果你遇到,正好可以参考:
node host gateway connect failed: SECURITY ERROR: Cannot connect to “ubuntu1.tailf64152.ts.net” over plaintext ws://. Both credentials and chat data would be exposed to network interception. Use wss:// for the gateway URL, or connect via SSH tunnel to localhost.
这个安全错误信息很明确:禁止使用明文的WebSocket(ws://)协议进行连接。解决方案是切换到加密的WSS协议,或者——就像我们上面做的——使用SSH隧道连接到localhost。因此,可以先通过配置命令修正Gateway的连接模式:
openclaw config set gateway.mode remote
openclaw config set gateway.remote.url wss://ubuntu1.tailf64152.ts.net:18789
但紧接着,在执行SSH隧道命令时,又可能碰到连接被拒绝的问题:
ssh -N -L 18789:localhost:18789 tinygone@ubuntu1.tailf64152.ts.net
# ssh: connect to host ubuntu1.tailf64152.ts.net port 22: Connection refused
这通常意味着Tailscale的出口节点(Exit Node)功能未正确配置,或者网络策略限制了连接。需要检查Tailscale后台的网络设置,确保该主机允许SSH入站连接。
Ubuntu 上批准 Node 配对
最后,还有一个容易被忽略的步骤。Node Host成功连接Gateway后,在Ubuntu主机的控制台,通常需要手动批准这次配对。虽然在上面的流程中我们跳过了这一步,直接通过状态查询确认了结果,但标准的流程应该是这样的:
# 查看所有等待批准的配对请求
openclaw nodes pending
# 批准特定的请求
openclaw nodes approve
# 再次查看所有已配对的节点状态
openclaw nodes status
关键词:OpenClaw, Tailscale,Gateway, Node,一主一从


