乐于分享
好东西不私藏

OpenClaw 云服务器集成 Mac 和 Windows 节点:从连通到常驻,一次讲清楚

OpenClaw 云服务器集成 Mac 和 Windows 节点:从连通到常驻,一次讲清楚

OpenClaw 云服务器集成 Mac 和 Windows 节点:从连通到常驻,一次讲清楚

如果你想把 OpenClaw 真正跑成一套“云端 Gateway + 本地设备节点”的可用系统,这篇文章可以直接当成一份从安装到接入的实操路线图来看。

很多人装好 OpenClaw 之后,第一反应通常是:能聊天了,接下来是不是就差不多了?

其实不是。

如果你真的想把 OpenClaw 用进自己的日常工作流,单纯把 Gateway 跑起来,只能算第一步。真正能把它变成“系统”的,是你能不能把本地设备也接进来,让云端的大脑和你手边的机器协同工作。

而这也是很多人真正开始踩坑的地方。

尤其是当你的架构变成:

• 云服务器 跑 OpenClaw Gateway

• 本地 Mac 作为节点接入

• 本地 Windows 也作为节点接入

这时候最常见的问题就不再是“怎么安装”,而是:

• 怎么让它们连通

• 怎么让它们断了能恢复

• 怎么让它们重启后还能常驻

• 怎么知道到底是隧道挂了、token 错了,还是 node 自己没起来

这也是为什么我更愿意把这件事叫做“搭系统”,而不是“装工具”。

所以这篇文章不只讲“怎么配”,还会按一个更稳的顺序,把 云端 Gateway、Mac 节点、Windows 节点 三部分拆开讲清楚。

先看重点

• 整体架构:云服务器负责跑 Gateway,本地 Mac 和 Windows 通过 SSH 隧道连接云端。

• 关键原则:节点不是直接连公网 Gateway,而是先连各自本地的隧道端口。

• Mac 常见问题:免密没配好、隧道没常驻、launchd 没跑起来。

• Windows 常见问题:token mismatch、计划任务没常驻、PowerShell 策略拦住脚本。

• 建议顺序:先打通一台节点,再扩第二台,不要一开始 Mac 和 Windows 一起配。

一、你最终要搭出来的是什么架构

先不要急着写命令,先把目标架构看懂。

你最终要搭出来的,其实是这样一套关系:

• 云服务器(AWS / VPS):运行 OpenClaw Gateway

• 本地 Mac:通过 SSH 隧道,把本地端口转发到云端 Gateway,再运行 openclaw node

• 本地 Windows:也是先建 SSH 隧道,再运行 openclaw node

一句话概括就是:

云端负责“大脑”,本地 Mac 和 Windows 负责“手脚”。

而节点连接的关键,不是直接去打云端公网端口,而是:

先连自己本地的隧道端口,再通过隧道转到云端 Gateway。

这一步如果一开始没想明白,后面很多报错看起来会很玄,其实只是链路理解错了。

二、先把云端 Gateway 跑稳,再谈节点

在你开始配 Mac 或 Windows 节点之前,必须先确认云端 Gateway 是稳定的。

至少要先确认这些:

• OpenClaw 已经装好

• Gateway 能正常运行

• 配置文件能正常读取

• 模型可用

• dashboard / Control UI 能打开

如果你连云端这一层都还没跑稳,就别急着配节点。因为节点一旦连不上,你根本分不清到底是云端有问题,还是本地有问题。

云端最基本的检查

先看 Gateway 状态:

 openclaw gateway status  

再看整体状态:

 openclaw status  

查看健康情况:

 openclaw health  

如果你只是想先确认 Gateway 已经起来,最重要的就是把这一层先跑通。节点接入一定是第二阶段,不要倒过来。

三、Mac 节点:最容易踩坑的,其实不是 node,而是 SSH 隧道

很多人以为 Mac 节点连不上,是 openclaw node 自己的问题。实际上,在“云端 Gateway + 本地 Mac”这种架构里,最容易出问题的往往不是 node,而是 SSH 隧道。

你可以先把 Mac 这条链路理解成这样:

1. Mac 本地先建立 SSH 隧道

2. 本地端口 127.0.0.1:18790 转发到云端 127.0.0.1:18789

3.openclaw node 连接的是 Mac 本地的 18790,不是公网地址

这点非常重要。

第 1 步:先把 SSH 免密配好

这一条是必须的。因为如果你后面要用 launchd 把隧道做成常驻,后台进程不可能等你手动输入密码。

在 Mac 上生成密钥:

 ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""  

安装公钥到云服务器:

 ssh-copy-id -i ~/.ssh/id_ed25519.pub root@<你的云服务器IP>  

验证免密:

 ssh -o BatchMode=yes -i ~/.ssh/id_ed25519 root@<你的云服务器IP> "echo ok"  

看到 ok 才算真正成功。

第 2 步:在 Mac 写 SSH 配置

推荐把常用参数直接写进 ~/.ssh/config,这样后面隧道和常驻会稳定很多。

核心思路是:

• 目标主机固定成一个别名

• 本地转发 18790 -> 云端 18789

• 保持连接活跃

第 3 步:先手动验证隧道

在 Mac 上执行:

 ssh -N remote-gateway  

这个命令会占住终端,是正常现象。另开一个终端检查本地 18790 是否在监听:

 lsof -nP -iTCP:18790 -sTCP:LISTEN  

如果能看到监听,就说明隧道这一步是通的。

第 4 步:安装 Mac node 服务

在 Mac 上执行:

 openclaw node install --force --host 127.0.0.1 --port 18790 --display-name "Master-Mac"  

然后重启 node:

 openclaw node restart  

查看状态:

 openclaw node status  

这里最关键的是:

• --host 127.0.0.1

• --port 18790

只要这两个没对上,后面大概率就会出现 ECONNREFUSED 这类错误。

第 5 步:把隧道做成常驻

如果你希望 Mac 节点长期在线,单纯手动开一个终端跑隧道是不够的。更稳的方式是用 launchd 做常驻。

核心思路很简单:

• 写一个 LaunchAgent

• 开机或登录后自动启动 SSH 隧道

• 隧道断了之后自动拉起

可选:直接用一键脚本把 Mac 节点跑起来

如果你不想手动一条条敲命令,也可以直接用一键脚本把 SSH 配置、隧道常驻、Node 服务安装与重启 一次做完。

你只需要先把脚本顶部这两个参数换成自己的:

• AWS_IP

• AWS_USER

然后在 Mac 上执行:

 bash ~/openclaw_mac_node_setup.sh  

这个脚本做的事情,本质上就是把前面几步自动串起来:

• 生成或复用 SSH key

• 验证 / 配置 SSH 免密

• 写入 ~/.ssh/config

• 生成 tunnel 的 LaunchAgent

• 安装并重启 openclaw node

• 做一轮基础自检

如果你的目标是“尽快把 Mac 节点稳定跑起来”,这类脚本会比手动逐条操作更省心。

但要注意两点:

• 第一次跑之前,最好先自己看一遍脚本内容

• 先确认云端 Gateway 已经正常运行,不要在云端还没稳的时候就直接跑自动化脚本

如果脚本跑完后,你还想确认是否真的接通,最直接的方式是回到云端执行:

 openclaw nodes status  

以及:

 openclaw nodes run --node Master-Mac -- sw_vers  

只要这两步正常,说明 Mac 节点这条链路已经基本打通了。

Mac 最常见的坑

• ECONNREFUSED 127.0.0.1:18790

• 免密没配好,后台 SSH 起不来

• 端口 18790 被旧进程占用

• Node 服务还在,但隧道实际上已经断了

如果你在 Mac 上只想抓一个关键点记住,那就是:

先看 18790 有没有监听,再看 node 状态。

不要一上来就怀疑 OpenClaw 本身。

四、Windows 节点:真正麻烦的,通常是 token 和常驻

Windows 节点的逻辑和 Mac 一样,也是先通过 SSH 隧道连接云端 Gateway,再让 openclaw node 连接本地隧道端口。

但 Windows 这条线跟 Mac 最大的不同在于:

• 它更容易卡在 PowerShell 执行策略

• 更容易卡在计划任务常驻

• 更容易出现 gateway token mismatch

所以 Windows 的重点,不只是“连通”,而是“能不能稳定常驻”。

第 1 步:先确认 PowerShell 环境没拦你

如果 PowerShell 默认策略太严,有些脚本就算你写对了也跑不起来。

可以先执行:

 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned -Force  

然后确认 OpenClaw CLI 正常:

 openclaw --version  

第 2 步:配置 SSH 免密

Windows 这一步和 Mac 的思路一样。

生成密钥:

 ssh-keygen -t ed25519 -f $env:USERPROFILE\.ssh\id_ed25519 -N ""  

然后把公钥追加到云服务器的 authorized_keys

验证免密:

 ssh -o BatchMode=yes -i $env:USERPROFILE\.ssh\id_ed25519 root@<你的云服务器IP> "echo ok"  

第 3 步:先手动把隧道打通

在 Windows 上执行:

 ssh -N -L 18790:127.0.0.1:18789 remote-gateway-win  

然后在另一个 PowerShell 窗口验证:

 Test-NetConnection 127.0.0.1 -Port 18790  

如果 TcpTestSucceeded : True,说明隧道链路没问题。

第 4 步:安装 Windows node 服务

在 Windows 上执行:

 openclaw node install --force --host 127.0.0.1 --port 18790 --display-name "Master-Win"  

然后重启:

 openclaw node restart  

查看状态:

 openclaw node status  

第 5 步:重点处理 token mismatch

Windows 节点最常见的一个错误,是:

unauthorized: gateway token mismatch

这说明 Windows 节点本地记录的 token,和云端 Gateway 当前 token 不一致。

这类问题最烦的地方在于:表面看像网络问题,实际上是认证问题。

所以如果你看到这个报错,不要在隧道上浪费太多时间,优先去对 token。

第 6 步:把隧道和 node 都做成常驻

Windows 上最稳的方式通常是:

• 用计划任务常驻 SSH 隧道

• 再用计划任务常驻 node 进程

这样重启之后,它还能尽量自动恢复。

可选:把 Windows 这一套也做成“一键常驻”

如果你不想在 Windows 上手动一步步建隧道、建计划任务、重启 node,也可以把这些动作收敛成一套固定脚本来执行。

这类脚本的目标不是“帮你少敲几条命令”这么简单,而是把 Windows 节点最容易出问题的三件事一次处理掉:

• SSH 隧道是否真的起来

• OPENCLAW_GATEWAY_TOKEN 是否和云端一致

• 计划任务能不能在重启或登录后自动恢复

如果你已经把:

• PowerShell 执行策略

• SSH 免密

• 隧道手动连通

这些步骤都验证过一遍,那么后面再把它们做成脚本化流程,会比长期手动维护稳定得多。

Windows 这一侧更适合脚本化的地方主要是:

• 注册 SSH 隧道计划任务

• 注册 node 常驻计划任务

• 设置或更新 Gateway token

• 跑完后做一轮本地连通性检查

如果脚本跑完后,你想确认 Windows 节点是不是真的在线,最直接的方式还是回云端执行:

 openclaw nodes status  

以及:

 openclaw nodes run --node Master-Win -- "hostname && whoami"  

只要这两步正常,说明 Windows 这一侧的“连通 + 常驻 + token”三件套就基本到位了。

Windows 最常见的坑

• gateway token mismatch

• 计划任务看起来存在,但实际上没跑起来

• 隧道没起,Test-NetConnection 18790=False

• 模式: 就绪 一直不变,任务启动后立刻退出

• OpenClaw 装好了,但脚本策略把执行给拦了

如果你在 Windows 这条线上只记一个重点,那就是:

先检查 token,再检查隧道,再检查计划任务。

顺序反了,很容易越查越乱。

五、云端怎么验收 Mac 和 Windows 节点都在线

本地配置完之后,最终还是要回到云端看结果。

在云服务器上,你至少要做三类检查:

1)看有没有待审批节点

 openclaw nodes pending  

首次接入时,通常需要审批。

2)批准节点

 openclaw nodes approve <requestId>  

3)看节点状态

 openclaw nodes status  

理想情况下,你会看到:

• Master-Mac paired · connected

• Master-Win paired · connected

4)做远程执行验收

测试 Mac:

 openclaw nodes run --node Master-Mac -- sw_vers  

测试 Windows:

 openclaw nodes run --node Master-Win -- "hostname && whoami"  

只要这两条都跑通,说明这套“云端 Gateway + 本地双节点”的架构已经基本成型了。

六、为什么我建议你别一开始就同时配两台节点

很多人会觉得,既然我最后就是要连 Mac 和 Windows,那不如一开始一起配。

但实际经验是:

• 这样做并不会更快

• 只会让问题更难定位

因为一旦两边都没连上,你会同时怀疑:

• 云端 Gateway

• SSH 免密

• 隧道

• token

• 常驻服务

• 计划任务

• launchd

这时候几乎没有排查效率可言。

更稳的方式是:

1. 先配通 Mac 或 Windows 其中一个

2. 确认整条链路真正在线

3. 再用同样的思路扩第二台

只要第一台跑通,第二台其实就只是“复制一条已经验证过的方法”,而不是从零重新试错。

写在最后

如果你只是把 OpenClaw 装起来,它其实还只是一个能跑的系统。

但当你把云端 Gateway、Mac 节点、Windows 节点真正连起来之后,它才开始变成一个更完整的工作流基础设施。

这也是为什么我会建议你,把这件事看成“搭系统”,而不是“装工具”。

工具装上就结束了;系统搭起来之后,才会在你每天的工作里持续发挥价值。

所以更稳的思路始终是一样的:

先把云端跑稳,再接一台节点;先把一台节点跑稳,再扩第二台。

只要你按这个节奏来,这件事其实没有看起来那么复杂。

如果你接下来准备先把 Mac 节点 单独打通,我建议继续看下一篇更细的实操手册:

《OpenClaw 云端 Gateway + 本地 macOS Node:从连通到常驻的完整实操手册》

那一篇会把 SSH 免密、隧道常驻、一键脚本、验收和常见报错展开得更完整。如果你准备接的是 Windows 节点,我也写了一篇对应的:

《OpenClaw 云端 Gateway + 本地 Windows Node:从连通到无感常驻的实操手册》