dsh-private-remote:在官方 Desktop 里续接远端 Harness 工作区与会话

前言

DeepSeek Harness(DSH)的日常开发往往绑在一台固定机器上:工作区、会话历史、模型与工具调用都落在本机 Gateway 后面。若想在另一台电脑的官方 Harness 界面里继续同一套工作区与会话,常见做法是自建网页、同步数据库或换用非官方客户端,维护成本和界面一致性都偏高。

dsh-private-remote 走另一条路:保留官方 Desktop UI,通过 Tailscale 把 Client 端本机 Gateway 的 /api 与 /api/remote.mux 切到远端 Host,不复制会话数据库,也不另做网页。下面介绍它的角色划分、安装步骤与安全边界。

这是什么

dsh-private-remote 是社区维护的 DSH 客户端类插件,仓库 MikyWang/dsh-private-remote,维护者 MikyWang。目录页:skillhub.cn 插件页。

当前插件版本 0.1.0,要求 DeepSeek Harness 0.2.1-rc.3(见仓库 README)。简介与 README 一致:在官方 Desktop 界面中,对接已配对的 Harness Host,延续其工作区、会话、流式回复与审批流程。

两种角色与数据路径

插件在同一 bundle 里区分三种运行模式:

角色 位置 作用
client 你正在使用的官方 Desktop 将本机 Gateway 的 /api、/api/remote.mux 指向远端 Host;提供顶部状态胶囊与设置页。
host 另一台电脑上的 Harness 在 Tailscale 地址上监听,仅转发白名单内的官方会话、工作区、审批/提问接口;不复制会话数据库。
both 同一台机器 既提供 Host,又连接另一台 Host。

核心路径为:

官方 UI → 本机 Harness Gateway → 远端 Harness Gateway → 官方 session/workspace API

前提条件

使用前需同时满足 README 中的四条前提:

  1. 两台机器均安装并登录 同一 tailnet 的 Tailscale。
  2. 两台机器均安装 DeepSeek Harness 0.2.1-rc.3。
  3. Host 端必须有 Tailscale IPv4(100.64.0.0/10);若无,需启动并登录 Tailscale。
  4. 用 Tailscale ACL 限制哪些设备能访问 Host 端口;没有应用层配对令牌可替代这一步。

安装与启用

Host 与 Client 两台机器安装同一个 bundle。步骤来自 README「三、安装」:

  1. 打开官方 插件 / Plugins 页面。
  2. 添加 GitHub 仓库地址(不要用旧的 v0.1.0 Release 资产):
https://github.com/MikyWang/dsh-private-remote
  1. 启用 dsh-private-remote。

本机开发时,README 提到可用 link: 指向本地 bundle 路径(示例:C:/git/dsh-private-remote/bundle)。

DSH 生态是「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,安装前宜自行查看仓库源码与 MIT 许可证。插件以当前 dsh 进程权限运行,Host 白名单内的会话与工作区对能连上 Tailscale 端口的 peer 而言等价于 owner 操作面,安装前应理解这一点。

Host 端设置

  1. 打开 设置 → 私人远程。
  2. 运行模式选 Host 或 两者。
  3. 端口默认 18082,可修改;Host 只监听本机检测到的 Tailscale IPv4,不能选回环、私网或公网地址。
  4. 保存后 Host 桥自动启动。页面会显示 Tailscale 监听地址(形如 http://100.x.y.z:18082)、本机设备名与已连接设备。
  5. Windows 防火墙应只放行 Tailscale 网段 到该 TCP 端口,不要映射到公网。

Host 端没有令牌、没有「显示/轮换令牌」,也没有「删除令牌」。停止监听时点 停止 Host 桥;恢复时点 启动 Host 桥。

Client 端与典型用法

  1. 在 Client 的 设置 → 私人远程,运行模式选 客户端 或 两者。
  2. 在「Host 地址」填入 Host 设置页显示的 Tailscale 地址,例如:
http://100.x.y.z:18082

可省略 http:// 与端口;默认端口为 18082。

  1. 点 测试连接,成功后点 进入远程。页面刷新后,官方侧栏显示远端工作区。
  2. 顶部状态胶囊显示 远程 · <Host>;会话标题旁显示远端工作区。没有令牌输入框;远端显示名来自 Host 的设备名。

断开与重连(README「五、Client 设置」):

  • 断开连接:关闭远端连接,卸载 Gateway switch,回到本地模式;保留上次 Host 地址以便预填。
  • 切换回本机:回到本地并清除保存的 Host 地址。
  • 意外断线:已加载页面进入 remote-offline,提交会被拒绝,不会悄悄在本机执行;需点断开或重新连接。
  • Host 进程重启:客户端回到本地模式,仅预填地址;重新点「进入远程」即可,不需要令牌。

安全模型与暴露范围

README 强调:没有应用层配对令牌。任何能连上 TailscaleIP:port 的客户端都会被 Host 当作 owner 等价 Peer;真正边界是 Tailscale 设备身份与 ACL。

  • 传输层有固定公开协议 key,用于协议分帧/版本隔离,不是认证秘密。
  • 远程 settings/describe 由 Host API 强制 redact secrets;settings/update|mutate|replace 仍拒绝。
  • 白名单限制会话、工作区、审批、提问等官方端点;终端、文件预览、插件管理、模型 Key、任意服务调用不暴露。
  • 日志不记录业务负载、cookie 或模型 Key,只记录控制动作名、设备名、IP、错误码。

故障排查(常见项)

现象 处理
host/tailscale-missing 本机无 Tailscale IPv4;启动并登录 Tailscale,确认 tailscale ip -4 有 100.x 地址。
Host 保存失败 host/config-invalid / host/bind-invalid 端口须为 1–65535 且空闲;WSL2 mirrored 网络可能占用部分端口段,可改用 18082 等。
客户端测试连接失败 确认 Host 已启动、地址为当前 Tailscale IP/端口、防火墙放行 Tailscale 网段;可用 tailscale ping <host>。
旧 Release 安装后没有新界面 v0.1.0 Release 早于 README 所述简化;用 GitHub 仓库地址安装最新提交。

更多条目见仓库 README「八、故障排查」。

卸载

  1. Client 先点 切换回本机。
  2. Host 点 停止 Host 桥。
  3. 在插件页移除 dsh-private-remote。
  4. 如需清理本机状态,删除 $DSH_HOME/private-remote/(含 client.json、host-meta.json);无令牌文件。

结尾

dsh-private-remote 面向需要在官方 Desktop 里操作远端 Harness 工作区与会话、且已用 Tailscale 组网的用户:不复制会话库、不另建 UI,用 Gateway 切换与白名单转发完成远程续接。使用前务必配置 Tailscale ACL,并理解 Host 端口对 tailnet 内可达设备的信任模型。

  • 目录页:https://www.skillhub.cn/plugins/MikyWang/dsh-private-remote
  • GitHub:https://github.com/MikyWang/dsh-private-remote
  • 架构与安全细节:仓库内 docs/ARCHITECTURE.md、docs/SECURITY.md 等
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye