What: switch to 你/你的 tone; standardize Skills/Gateway网关/local loopback/私信 wording Why: align zh-CN docs with issue 6995 feedback + idiomatic tech style Tests: pnpm docs:build
3.7 KiB
3.7 KiB
read_when, summary, title, x-i18n
| read_when | summary | title | x-i18n | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Gateway网关拥有的节点配对(方案 B),适用于 iOS 及其他远程节点 | Gateway网关拥有的配对 |
|
Gateway网关拥有的配对(方案 B)
在 Gateway网关拥有的配对模式中,Gateway网关 是决定哪些节点允许加入的权威来源。UI(macOS 应用、未来的客户端)只是用于批准或拒绝待处理请求的前端。
重要说明:WS 节点在 connect 过程中使用设备配对(角色 node)。node.pair.* 是一个独立的配对存储,不会控制 WS 握手。只有显式调用 node.pair.* 的客户端才使用此流程。
概念
- 待处理请求:节点请求加入,需要审批。
- 已配对节点:已批准的节点,带有已签发的认证令牌。
- 传输层:Gateway网关 WS 端点转发请求但不决定成员资格。(旧版 TCP 桥接支持已弃用/移除。)
配对工作原理
- 节点连接到 Gateway网关 WS 并请求配对。
- Gateway网关存储一个待处理请求并发出
node.pair.requested事件。 - 你批准或拒绝该请求(通过 CLI 或 UI)。
- 批准后,Gateway网关签发一个新令牌(重新配对时令牌会轮换)。
- 节点使用该令牌重新连接,此时即为"已配对"状态。
待处理请求会在 5 分钟后自动过期。
CLI 工作流(适合无界面环境)
openclaw nodes pending
openclaw nodes approve <requestId>
openclaw nodes reject <requestId>
openclaw nodes status
openclaw nodes rename --node <id|name|ip> --name "Living Room iPad"
nodes status 显示已配对/已连接的节点及其能力。
API 接口(Gateway网关协议)
事件:
node.pair.requested— 创建新的待处理请求时发出。node.pair.resolved— 请求被批准/拒绝/过期时发出。
方法:
node.pair.request— 创建或复用待处理请求。node.pair.list— 列出待处理和已配对的节点。node.pair.approve— 批准待处理请求(签发令牌)。node.pair.reject— 拒绝待处理请求。node.pair.verify— 验证{ nodeId, token }。
注意事项:
node.pair.request对每个节点是幂等的:重复调用返回相同的待处理请求。- 批准操作始终生成新令牌;
node.pair.request不会返回任何令牌。 - 请求可包含
silent: true作为自动批准流程的提示。
自动批准(macOS 应用)
macOS 应用可在以下条件满足时选择性地尝试静默批准:
- 请求标记为
silent,且 - 应用能够使用同一用户验证与 Gateway网关主机的 SSH 连接。
如果静默批准失败,则回退到常规的"批准/拒绝"提示。
存储(本地,私有)
配对状态存储在 Gateway网关状态目录下(默认 ~/.openclaw):
~/.openclaw/nodes/paired.json~/.openclaw/nodes/pending.json
如果你覆盖了 OPENCLAW_STATE_DIR,nodes/ 文件夹会随之移动。
安全注意事项:
- 令牌是机密信息;请将
paired.json视为敏感文件。 - 轮换令牌需要重新审批(或删除节点条目)。
传输层行为
- 传输层是无状态的;它不存储成员信息。
- 如果 Gateway网关离线或配对功能被禁用,节点无法配对。
- 如果 Gateway网关处于远程模式,配对仍然基于远程 Gateway网关的存储进行。