前言¶
DeepSeek Harness(DSH)的 Web 界面默认要登录令牌才能用;Desktop 走 IPC,往往不会在控制台打印那条带令牌的链接,而令牌又是进程级、重启即换。若你只想在出差或通勤时用手机连上自己电脑上的 DSH,常见做法是 SSH 隧道、内网穿透或自建反向代理——多一层运维,也可能经过第三方中转。
dsh-tailscale-remote 是社区维护的 DSH 插件:在 DSH 运行期间用本机已登录的 Tailscale,通过 Tailscale Serve 把 Web GUI 挂到 tailnet 的 HTTPS 地址上;DSH 正常退出时撤掉本次建立的路由与信任项。不引入插件作者以外的中转服务,前提是你本机 Tailscale 已就绪。
这是什么¶
- 名称:
dsh-tailscale-remote(npm / 插件包名一致) - 维护者:Ckarefulon
- 分类:联网工具(社区目录 SkillHub 插件页)
- 定位:给 DeepSeek Harness 用;只做「随时随地用手机连上本机 DSH」一件事。
源码与说明见 GitHub:Ckarefulon/dsh-tailscale-remote。当前资料中的包版本为 0.6.4,许可证 MIT。插件在 DSH 进程内加载,权限与当前 dsh 一致;安装前请自行查看源码与许可证。
核心功能¶
启动时¶
- 用
tailscale status --json检查BackendState,确认 Tailscale 后端真的在跑(不只看tailscale up的退出码)。 - 将
https://<你的机器>.<tailnet>.ts.net:7259(默认端口,可配置)代理到 DSHwebServer实际监听的端口。 - 把
<你的机器>.<tailnet>.ts.net:7259加入 DSH/api的 Host 信任列表(tailscale serve会保留客户端 Host 头,否则手机能开页、发消息会 403)。 - 生成手机可用链接,写入状态文件并打日志。
- 默认开启精简模式:仅影响经 HTTP 渲染的手机页首屏插件体积(资料称约 5.3 MB gzip 降至约 1.1–1.3 MB),桌面 Electron 不受影响。
退出时¶
回滚本次运行做过的改动:撤掉 7259 路由、移除对应信任项。仅当 Tailscale 本是由 DSH 拉起时才会 tailscale down。若 7259 上已有指向上次崩溃残留的本实例路由,插件会认领并在退出时一并撤掉。
稳定登录入口¶
DSH Web 无令牌时只显示 dsh web authentication required; ...。插件提供跨重启不变的入口:
https://<你的机器>.<tailnet>.ts.net:7259/remote/<持久密钥>
访问后 302 到带令牌的地址并种下 cookie;之后可直接打开 https://<机器>.<tailnet>.ts.net:7259/。默认 cookie 有效期约 10 年(cookieMaxAgeDays 默认 3650),相对 DSH 默认 30 天更适合「手机随时连」。
设置页与状态文件¶
在 DSH 设置 → 通用 → 手机连接 可复制链接;支持「更换密钥」(默认同时吊销旧会话)。未就绪时会提示原因(例如 Tailscale 未运行)。
状态文件默认路径:
cat ~/.dsh/tailscale-remote.json
字段含 loginUrl(稳定入口)、url、plainUrl。Windows PowerShell:
Get-Content "$env:USERPROFILE\.dsh\tailscale-remote.json"
其它已文档化的优化¶
- 精简模式(
lite,默认true):改渲染后的index.html,白名单闭包减 preload;侧边栏底部可切换精简/完整(刷新后生效)。白名单失配时发完整页并记日志。 - WebSocket 压缩(
websocketCompression,默认true):对/api/remote.mux惰性开启permessage-deflate,减轻手机拉历史与会话的流量。
前置条件¶
- 本机已安装并登录 Tailscale。
- 该 tailnet 在 Tailscale 管理台已启用 HTTPS Certificates(DNS → HTTPS Certificates)。未启用时
tailscale serve会失败,日志会有提示。
安装与启用¶
dsh plugin --profile <你的 profile> add dsh-tailscale-remote
从本地目录开发安装:
dsh plugin --profile <profile> add -w /path/to/dsh-tailscale-remote
装完后重启 DSH(新插件需重启才加载)。之后每次启动 DSH,插件会按配置自动执行。
常用配置项(完整表见 README):
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
true |
关闭则插件不动作 |
httpsPort |
7259 |
tailnet HTTPS 端口 |
loginRoute |
true |
是否注册 /remote/<密钥> |
revokeSessionsOnRotate |
true |
换密钥时是否吊销所有已登录会话 |
teardownOnExit |
true |
退出时是否回滚路由与信任项 |
lite |
true |
手机页精简插件集 |
典型用法¶
最省事的两步:
- 在电脑上打开 DSH → 设置 → 通用 → 手机连接,点「复制」。
- 在手机浏览器打开该链接一次,存书签或添加到主屏幕;以后可直接用
loginUrl或干净地址。
若链接泄露:更换密钥(默认会踢掉所有设备,操作端会自动补发 cookie)。若只想换链接、不踢设备,可设 revokeSessionsOnRotate: false(已泄露且对方已登录时旧 cookie 仍可能有效,需自行权衡)。
不需要稳定登录路由时可设 loginRoute: false。
适用场景与注意¶
适合:已在用 Tailscale、希望手机在任意网络下访问本机 DSH,且希望 DSH 关掉时 tailnet 上的 Serve 路由一起撤掉。
注意:
- 登录链接中的持久密钥与 DSH 令牌同级,应视为秘密;依赖 tailnet 与 HTTPS 证书,不替代 DSH 自身的认证模型。
- README 说明 DSH 0.2.0-rc.2 的 Web 前端无专门移动端外壳,但弹性布局下日常查看会话、发消息可用;若要抽屉侧栏等需另写客户端插件。
- 社区插件目录与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本包为第三方贡献。
结尾¶
dsh-tailscale-remote 把「Tailscale Serve + Host 信任 + 持久 /remote 登录 + 可选手机精简页」收进一个 DSH 插件,解决 Desktop 不打印 Web 登录链接、令牌随重启失效的痛点。安装命令以 README 为准,详情与 issue 见仓库。
- 目录页:https://www.skillhub.cn/plugins/Ckarefulon/dsh-tailscale-remote
- GitHub:https://github.com/Ckarefulon/dsh-tailscale-remote