前言¶
DeepSeek Harness(DSH)桌面端的 Web UI 默认只监听回环地址 127.0.0.1。这样本机访问更安全,但手机在同一 Wi‑Fi 下也连不上这个界面。常见做法是改绑定、做端口转发或挂反向代理,要么扩大暴露面,要么多一层运维。
若你已经在用 Tailscale,两台设备已在同一 tailnet 里,缺的往往只是:把本机 DSH 端口安全地桥到 tailnet 内的 HTTPS 域名,并能随时关掉。下面介绍社区插件 dsh-plugin-tailscale-remote(维护者 kjx-talesofai),它在 DSH 侧栏提供一个开关,用 tailscale serve 建映射、出二维码,手机浏览器扫码即可进入,无需公网暴露。
这是什么¶
dsh-plugin-tailscale-remote 是 DSH 桌面端插件,分类为联网工具。一句话:在你自己的 Tailscale tailnet 上,用「一个开关」把桌面 DSH Web UI 映射为 https://<设备名>.<tailnet>.ts.net/ → 本机 127.0.0.1:<DSH 端口>,并给出配对二维码。
它不是手机客户端:手机侧只需浏览器标签页,不装额外 App、不经过中继、不引入第二套会话存储;代价是必须有一台开着 DSH 的桌面机,且与手机在同一 tailnet。若需要原生安卓体验,README 指向社区项目 DeepSeek Harness Mobile,分工不同。
当前 release 为 v0.2.5(MIT 许可证)。GitHub 仓库:kjx-talesofai/dsh-plugin-tailscale-remote;社区目录页:SkillHub 插件页。
核心功能¶
插件刻意收窄范围,README 中强调的能力如下。
Tailnet 内 HTTPS 映射
打开侧栏「Tailscale 远程访问」开关后,插件在 tailnet 上建立 HTTPS 映射,DSH 仍只监听 127.0.0.1,不由插件改成 0.0.0.0。TLS 由 tailscale serve 终结并反代到本机端口。只使用 Serve,不使用 Funnel,映射仅在 tailnet 内可达。
二维码与配对
面板显示状态、二维码和备用链接。手机扫码打开配对页,点「进入 DSH」后,该浏览器持有会话(cookie 保留 30 天);之后可直接访问 https://<node>.<tailnet>.ts.net/。配对码一次性、10 分钟有效,用过会自动换新。
启动前预检
打开开关时会检查:两台设备是否在同一 tailnet、MagicDNS 与 HTTPS Certificates 是否启用、节点证书是否已签发。缺项会在面板上用红字说明,避免「绿灯但连不上」。插件不替代 Tailscale 组网本身。
界面语言
侧栏名、面板与帮助文案跟随 DSH「设置 → 通用 → 语言」实时切换。配对页、过期码页按手机浏览器 Accept-Language 选择语言。
引擎要求
package.json 声明:Node >=22,DSH Desktop >=0.2.0-rc.1 且 <0.3.0。
安装与启用¶
插件未发布到 npm registry,在 DSH「添加插件」对话框填入下列之一,安装后需重启桌面端(host 侧在启动时加载)。
GitHub(固定到当前可用 release):
github:kjx-talesofai/dsh-plugin-tailscale-remote#v0.2.5
本地开发可用绝对路径,例如 /path/to/dsh-plugin-tailscale-remote。
命令行等价写法:
dsh plugin --profile desktop add github:kjx-talesofai/dsh-plugin-tailscale-remote#v0.2.5
从已安装包或 checkout 也可通过脚本安装(默认安装与包内版本一致的 GitHub tag):
node ~/.dsh/profiles/desktop/node_modules/dsh-plugin-tailscale-remote/scripts/install.mjs --profile desktop
hostname 由插件在启动时探测并注册进 harness 的信任栅栏,无需单独配置。
Tailscale 前置条件¶
README 给出三步,可由他人或自动化按序执行。
- 在桌面与手机安装 Tailscale 客户端,用同一账号登录(同一 tailnet)。
- 在 Tailscale 管理台 DNS 页 启用 MagicDNS 与 HTTPS Certificates。
- 验证:
tailscale status能看到两台设备;tailscale ip -4输出100.x地址。
典型用法¶
- 侧栏打开 Tailscale 远程访问(英文界面为 Tailscale Remote Access)开关。
- 用手机相机扫面板上的二维码,在配对页点击 进入 DSH。
- 此后在该手机浏览器直接打开面板显示的 HTTPS 地址即可。
关开关会撤销 tailscale serve 建立的映射。若配置了自定义 servePort,URL 会带端口(如 https://<node>.<tailnet>.ts.net:8443/),面板会一并显示。
卸载:在 DSH 插件列表卸载 dsh-plugin-tailscale-remote 后重启。若希望一并清理入口,先在面板关闭开关。
适用场景与注意¶
适合谁
- 已有 Tailscale,希望用手机浏览器临时查看或操作桌面上的 DSH,不想改 DSH 监听地址或做公网端口转发。
- 接受「桌面机需在线、Tailscale 客户端保持运行」;Mac 睡眠或合盖时隧道会断,手机无法连接。
安全与行为
- 流量留在 tailnet(WireGuard)内;README 写明插件不向外部发送遥测。
- 关开关 ≠ 立刻失效会话:撤销的是入口映射,已签发的会话 cookie 在 30 天内仍可能有效。
- 启动链接携带每进程 token,面板仅在已认证的 UI 内展示,README 说明 token 不写入磁盘。
兼容与实测
维护者在 README「老实说」一节写明:端到端实测主要在 macOS(Apple Silicon)+ DSH 0.2.0-rc.2 + Tailscale CLI 1.102.4;DSH 升到 0.2.1-rc.2 后重核了依赖面,但未重新用手机走全流程。Windows / Linux 未测;DSH 大版本升级后上游契约可能变化,升级前宜对照仓库 Compatibility 说明。
安装前习惯
DSH 生态主张「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。插件以当前 DSH 进程权限运行,安装前建议阅读 源码 与 MIT 许可证,确认符合你的安全策略。
结尾¶
dsh-plugin-tailscale-remote 把「桌面 loopback 上的 DSH Web UI」接到「仅 tailnet 可达的 HTTPS 域名」,用侧栏开关和二维码完成配对,避免端口转发与公网暴露。若你已在用 Tailscale,这是路径很窄、边界很清晰的一种远程打开方式。