如果你的 OpenClaw 跑在家里主机、VPS 或常开的服务器上,远程访问就是必须补上的一环。官方文档对这个主题的建议非常明确:默认保持 loopback,只在需要时通过 SSH 或 Tailscale 暴露。
先理解官方推荐架构
官方把 Gateway 主机视为“智能体真正所在的位置”:
- 会话、身份认证、渠道和运行状态都在 Gateway 主机上
- 你的笔记本、桌面、手机节点只是连接到它
这意味着远程访问的核心不是“在每台设备上都跑一份 Gateway”,而是“让其他设备安全访问同一个 Gateway”。
最安全的默认值:保持 loopback
官方远程访问文档强调:
- Gateway WebSocket 默认绑定到 loopback
- 对大多数用户来说,这是最安全的默认设置
- 远程使用时,优先通过 SSH 隧道或 Tailscale Serve,而不是直接把服务公网暴露出来
方案一:SSH 隧道
这是最通用的回退方案。官方给出的命令是:
ssh -N -L 18789:127.0.0.1:18789 user@host
含义是:
- 把远程主机上的
127.0.0.1:18789转发到你本机的127.0.0.1:18789 - 这样本地 CLI 和浏览器都可以把远程 Gateway 当成本地 Gateway 来访问
隧道建立后,你可以:
- 运行
openclaw health - 运行
openclaw status --deep - 打开
http://127.0.0.1:18789/
如果远程 Gateway 不是默认端口,记得把命令里的 18789 换成真实端口。
方案二:Tailscale Serve
官方把它视为最佳用户体验方案之一,尤其适合“Gateway 常驻在线,而你的笔记本经常休眠”的场景。
推荐做法是:
- 让
gateway.bind保持loopback - 用 Tailscale Serve 提供控制 UI
这样可以同时满足:
- 不直接暴露原始服务
- 远程设备访问更顺滑
- 安全边界更清晰
适合长期运行的几种典型部署
1. VPS 或家庭服务器常驻运行 Gateway
这是官方最推荐的长期在线模式之一:
- Gateway 跑在一台稳定在线的主机上
- 你用 Tailscale 或 SSH 访问它
- 当你的笔记本休眠时,智能体仍然在线
2. 家里桌面跑 Gateway,笔记本远程控制
官方建议:
- 笔记本不跑智能体
- 通过 SSH 或 macOS 的 Remote over SSH 模式访问家里桌面上的 Gateway
3. 笔记本跑 Gateway,其他机器远程连它
这种模式也支持,但同样建议:
- 仍然保持 Gateway 自身是 loopback
- 通过 SSH 隧道或 Tailscale Serve 暴露
持久化远程 CLI 目标
如果你希望 CLI 默认就操作远程 Gateway,官方给出了一份配置示例:
{
"gateway": {
"mode": "remote",
"remote": {
"url": "ws://127.0.0.1:18789",
"token": "your-token"
}
}
}
注意:
- 当远程 Gateway 仍然只绑定 loopback 时,这里的
ws://127.0.0.1:18789依然成立 - 前提是你已经先建立好了 SSH 隧道
安全上最重要的几条规则
官方文档强调这些点:
- 默认保持
gateway.bind: "loopback" - 如果使用非 loopback 绑定,必须配置认证
gateway.remote.token只影响远程 CLI 调用,不会替代本地认证- 浏览器控制台属于管理界面,应该被视为高权限入口
一个推荐的远程访问流程
如果你现在就要把家里或服务器上的 OpenClaw 远程连起来,我建议按官方路线这样做:
- 在远程主机上运行 Gateway
- 保持它只绑定 loopback
- 在本机建立 SSH 隧道:
ssh -N -L 18789:127.0.0.1:18789 user@host
- 本机执行:
openclaw dashboard
- 用 CLI 打开的带 token 链接访问控制台
这个方案实现简单,而且符合官方的安全默认值。