OpenClaw 解决两个相似但不同的问题:

  1. Operator 远程控制:macOS 菜单栏 app 控制远程 Gateway
  2. 节点配对:iOS/Android 等节点找到 Gateway 并安全配对

设计原则:所有网络发现/广播由 Node Gateway 负责,客户端(mac app、iOS)作为消费者。

核心术语

术语说明
Gateway单个长运行进程,拥有 sessions、pairing、node registry,运行 channels
Gateway WS控制平面 WebSocket,默认 127.0.0.1:18789
Direct WS transportLAN/tailnet 直连 Gateway WS 端点
SSH transport通过 SSH 转发 127.0.0.1:18789(fallback)

发现方式

1. Bonjour / DNS-SD(局域网)

Gateway 通过 bonjour 插件广播 WS 端点:

  • 服务类型:_openclaw-gw._tcp
  • TXT 记录包含:role=gateway、gatewayPort=18789、displayName、tailnetDns 等

安全注意:Bonjour TXT 记录未经认证,客户端应仅作为 UX 提示,不能用于安全决策。

启用/禁用:

openclaw plugins enable bonjour   # 启用 LAN 广播
OPENCLAW_DISABLE_BONJOUR=1        # 禁用广播

2. Tailnet(跨网络)

推荐使用 Tailscale MagicDNS 名称(优于原始 IP)。Gateway 检测到 Tailscale 时自动发布 tailnetDns 提示。

移动节点在 tailnet/公网路由上仍需安全连接(wss:// 或 Tailscale Serve/Funnel)。

3. 手动 / SSH

无直连路由时,客户端通过 SSH 转发 loopback gateway 端口连接。

传输选择策略(客户端)

  1. 已配对直连端点可达 → 使用直连
  2. 发现 local. 或配置域上的 Gateway → 提示”使用此 Gateway”并保存
  3. 配置了 tailnet DNS/IP → 尝试直连(移动节点需安全端点)
  4. 以上均失败 → 回退到 SSH

配对与认证

Gateway 是节点/客户端准入的唯一来源:

  • 配对请求在 Gateway 创建/审批/拒绝
  • Gateway 强制执行:auth(token/keypair)、scopes/ACLs、速率限制

相关链接