OpenClaw 解决两个相似但不同的问题:
- Operator 远程控制:macOS 菜单栏 app 控制远程 Gateway
- 节点配对:iOS/Android 等节点找到 Gateway 并安全配对
设计原则:所有网络发现/广播由 Node Gateway 负责,客户端(mac app、iOS)作为消费者。
核心术语
| 术语 | 说明 |
|---|---|
| Gateway | 单个长运行进程,拥有 sessions、pairing、node registry,运行 channels |
| Gateway WS | 控制平面 WebSocket,默认 127.0.0.1:18789 |
| Direct WS transport | LAN/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 端口连接。
传输选择策略(客户端)
- 已配对直连端点可达 → 使用直连
- 发现
local.或配置域上的 Gateway → 提示”使用此 Gateway”并保存 - 配置了 tailnet DNS/IP → 尝试直连(移动节点需安全端点)
- 以上均失败 → 回退到 SSH
配对与认证
Gateway 是节点/客户端准入的唯一来源:
- 配对请求在 Gateway 创建/审批/拒绝
- Gateway 强制执行:auth(token/keypair)、scopes/ACLs、速率限制
相关链接
- gateway-pairing — Gateway 节点配对详情
- gateway-health — 健康检查