# 两台机器,5 分钟装好(1.0 插件版) 前置:两台机器都装 **DSH Desktop(≥ 0.2.1-rc.2)**,在同一局域网,能互相 ping 通。 不需要预装 Node、不需要复制文件夹、不需要额外配置、不需要计划任务。 > 假设:机器 A = `pc1` 当服务端;机器 B = `pc2` 当客户端。名字可以在设置页改。 --- ## 机器 A(服务端) 1. **插件 → 添加插件** → 输入 `dsh-lan-relay`(npm 发布后)或选本地目录 / Git 地址 → 安装。 2. 打开 **设置 → 局域网中继**。 3. **运行角色** 选 **服务端** → **保存**。 - 顶部状态应变成 **服务端运行中**(绿色)。 - 页面会显示:端口 `8787`、本机名称、**Token**(默认掩码)、**加入码**(`dshrelay1.…`)、本机地址、Hub 状态。 4. (防火墙开着的话)点 **一键放行防火墙** → UAC 点「是」。规则只放行 Private 配置文件 + 本地子网 + TCP 8787。 5. 点 **加入码** 旁边的 **复制**,把这一行发给机器 B(微信/记事本/任何方式)。 验证: - 页面「Hub 状态:运行中」,消息数/最新序号正常; - 页面「在线 peer」里能看到本机(刚启动时可能只显示自己)。 --- ## 机器 B(客户端) 1. 同样安装 `dsh-lan-relay`。 2. **设置 → 局域网中继** → **运行角色** 选 **客户端**。 3. 把机器 A 的**加入码**粘贴到 **加入码** 输入框(会显示「已识别」预览:地址 + token 末 4 位)。 4. **保存**。顶部状态应变成 **客户端已连接**(绿色),`在线 peer` 里出现 `pc1` 和 `pc2`。 5. 如果连不上:点 **连接测试** 看具体错误;确认地址是 A 机器的局域网 IP、防火墙已放行、两台在同一子网。 --- ## 验证消息互通 在任意一台机器的 DSH 会话里对 Agent 说: > 用 lan_relay_peers 看下在线机器,然后给 pc1 发消息:"ping from pc2",并等 30 秒看回复。 对端 Agent 会被自动唤醒(插件把消息投递到会话并跑一轮),回复走 `lan_relay_send` 回来。 只想手动收发、不想被自动唤醒时,把 `push.enabled` 设为 `false`(改配置后保存/重启),用 `lan_relay_inbox` / `lan_relay_wait` 手动拉。 --- ## 换 token / 换端口 / 换机器名 - **换 token**:服务端设置页 **重新生成** → 保存;把新加入码发给所有客户端重新粘贴。 - **换端口**:服务端改端口 → 保存(hub 用新端口重启);重新生成/复制加入码给客户端。 - **换机器名**:改 **本机名称** → 保存;对端 peer 列表里会显示新名字。 - **换服务端机器**:新机器选服务端并保存,拿到新加入码;其他机器改成客户端并粘贴新加入码。 --- ## 卸载 / 回退 - 关闭:**运行角色 → 关闭 → 保存**(hub 与轮询停止,工具仍在但会提示未启用)。 - 卸载:**插件 → dsh-lan-relay → 卸载**。配置文件 `~/.dsh/lan-relay/config.json` 会保留,重新装回来即恢复。