OpenClawSkills
GitHub
Gateway / 运维 • 5 分钟阅读

远程访问

通过 SSH 隧道(Gateway WS)和尾网进行远程访问。

此仓库支持"通过 SSH 远程",通过在专用主机(桌面/服务器)上运行单个网关(主服务器),客户端连接到它。

- 对于 操作员(您/macOS 应用):SSH 隧道是通用的后备方案。

- 对于 节点(iOS/Android 和未来设备):连接到网关 WebSocket(根据需要使用 LAN/尾网或 SSH 隧道)。

Tutorial.step

核心概念

- 网关 WebSocket 绑定到配置端口(默认 18789)的 回环地址。

- 对于远程使用,您可以通过 SSH 转发该回环端口(或使用尾网/VPN 减少隧道)。

Tutorial.step

常见 VPN/尾网设置(代理所在位置)

将 网关主机 视为"代理所在的位置"。它有会话、认证配置、通道和状态。

笔记本电脑/台式机(和节点)连接到该主机。

#

Tutorial.step

1) 尾网中始终在线的网关(VPS 或家庭服务器)

在持久主机上运行网关,并通过 Tailscale 或 SSH 访问。

- ''最佳体验:'' 保持 ''gateway.bind: "loopback"'' 并为控制 UI 使用 ''Tailscale Serve''。

- 后备方案: 从需要访问的机器维护回环 + SSH 隧道。

- ''示例:'' ''exe.dev''(简单 VM)或 ''Hetzner''(生产 VPS)。

如果您的笔记本电脑经常休眠但您希望代理始终在线,这很合适。

#

Tutorial.step

2) 在家庭台式机上运行网关,从笔记本电脑远程控制

笔记本电脑不运行代理。它远程连接:

- 使用 macOS 应用的 通过 SSH 远程 模式(设置 → 通用 → "OpenClaw 运行位置")。

- 应用会打开并管理隧道,使 WebChat + 健康检查"正常工作"。

操作手册:''macOS 远程访问''。

#

Tutorial.step

3) 在笔记本电脑上运行网关,从其他机器远程访问

保持网关本地但安全地公开:

- 从其他机器到笔记本电脑的 SSH 隧道,或

- 为控制 UI 使用 Tailscale serve 和仅回环的网关。

指南:''Tailscale'' 和 ''网络概述''。

Tutorial.step

命令流程(什么在哪里运行)

单个网关服务拥有状态 + 通道。节点是外设。

示例流程(Telegram → 节点):

- Telegram 消息到达 网关。

- 网关运行 代理,决定是否调用节点工具。

- 网关通过网关 WebSocket(''node.*'' RPC)调用 ''节点''。

- 节点返回结果。网关回复 Telegram。

注意:

- ''节点不运行网关服务。'' 每台主机一个网关,除非您特意运行隔离的配置文件(参见 ''多个网关'')。

- macOS 应用的"节点模式"只是网关 WebSocket 上的节点客户端。

Tutorial.step

SSH 隧道(CLI + 工具)

创建到远程网关 WS 的本地隧道:

Bash
ssh -N -L 18789:127.0.0.1:18789 user@host

建立隧道后:

- ''openclaw health'' 和 ''openclaw status --deep'' 通过 ''ws://127.0.0.1:18789'' 访问远程网关。

- openclaw gateway {status,health,send,agent,call}' 也可以通过 --url 定向到转发的 URL。

注意:将 ''18789'' 替换为您配置的 ''gateway.port''(或 ''--port''/''OPENCLAW_GATEWAY_PORT'')。

Tutorial.step

CLI 远程默认值

您可以持久化远程目标供 CLI 命令默认使用:

Json5
{
  gateway: {
    mode: "remote",
    remote: {
      url: "ws://127.0.0.1:18789",
      token: "your-token",
    },
  },
}

如果网关仅限回环,将 URL 保持为 ''ws://127.0.0.1:18789'' 并先打开 SSH 隧道。

Tutorial.step

通过 SSH 的聊天 UI

WebChat 不再使用单独的 HTTP 端口。SwiftUI 聊天 UI 直接连接到网关 WebSocket。

- 通过 SSH 转发 ''18789''(见上文),然后将客户端连接到 ''ws://127.0.0.1:18789''。

- 在 macOS 上,优先使用应用的"通过 SSH 远程"模式,它会自动管理隧道。

Tutorial.step

macOS 应用"通过 SSH 远程"

macOS 菜单栏应用可以端到端驱动相同的设置(远程健康检查、WebChat、语音唤醒转发)。

操作手册:''macOS 远程访问''。

Tutorial.step

安全规则(远程/VPN)

简而言之:除非需要绑定其他地址,否则保持网关仅限回环。

- 回环 + SSH/Tailscale Serve 是最安全的默认设置(无公共暴露)。

- ''非回环绑定''(当回环不可用时的 ''lan''/''tailnet''/''custom'' 或 ''auto'')需要认证令牌/密码。

- ''gateway.remote.token'' 仅用于远程 CLI 调用 — 它不启用本地认证。

- 如果使用 ''wss://'',''gateway.remote.tlsFingerprint'' 固定远程 TLS 证书。

- ''Tailscale Serve'' 可以通过身份头认证,如果 ''gateway.auth.allowTailscale: true''。

如果需要令牌/密码认证,设置为 ''false''。

- 将浏览器控制视为操作员访问:仅限尾网 + 有意的节点配对。

详情:''安全''。