前言¶
DeepSeek Harness(DSH)默认只监听本机 127.0.0.1,并用 Host 校验限制访问。想在手机、平板或另一台电脑的浏览器里继续用同一台机器上的 DSH 会话,常见做法是 SSH 端口转发、VPN,或单独起 dsh web 再想办法暴露端口——配置分散,移动端也不总是顺手。
下面介绍社区插件 dsh-hub-plugin(维护者 dbssAlan):在本机做反向代理与访问密码保护,可选 cloudflared 隧道出公网;访问密码、二维码、设备导航、隧道模式都在 DSH 设置页里完成,默认关闭,随 DSH 启停。
这是什么¶
dsh-hub-plugin 是发布在 npm 与 GitHub 上的 DSH 插件(当前 package 版本 0.6.2,MIT 许可,支持 Windows / macOS / Linux)。它在本机 :19388(可改)起 Hub 反代,把外部 HTTPS 或局域网请求改写到 127.0.0.1:<DSH 端口>,并在密码页之后签发 Hub 会话 Cookie,再与 DSH 宿主对接。
适合场景:同一 WiFi 内直连,或通过 cloudflared 的随机域名 / Cloudflare 命名隧道固定域名,从浏览器远程使用这一台电脑上的 DSH(桌面版或 dsh web)。社区目录页:https://www.skillhub.cn/plugins/dbssAlan/dsh-hub-plugin;源码与文档:https://github.com/dbssAlan/dsh-hub-plugin。
DSH 生态强调「一切皆插件」;SkillHub 等目录是社区站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
访问与隧道¶
- 访问密码:URL 不含密码,打开后必须输入;登录后 30 天
HttpOnlyCookie(SameSite=Lax)。登录失败限速 5 次 / 60 秒。 - 局域网 + 公网:同一 WiFi 可直连 Hub 端口;公网通过 cloudflared(
quick免费随机域名,或named命名隧道固定域名)。cloudflared 可在首次建隧道时自动下载到%DSH_HOME%/bin,也可自行安装。 - 设备导航页:展示二维码、分享链接、访问密码,支持一键复制;设置页可「打开设备导航页」。
设置页与形态¶
- 入口:
Ctrl + ,→ 远程访问;启用、密码、隧道、保存并重启均在 UI 完成。 - 插件形态:随 DSH 启停,无需单独开终端维护 Hub。
- 桌面版直连:可直接发布 Electron 桌面版宿主,不必为远程再起一个独立宿主。
- 多宿主冲突提示:检测到桌面版与
dsh web同时运行会提醒,避免会话写租约互相锁。
设备会话、审计与多机¶
- 设备会话:记录各登录设备,可逐个或全部撤销;撤销后该设备需重新输入密码。
- 登录审计:最近 100 条写入
%DSH_HOME%/dsh-hub-plugin/audit.jsonl。 - 远程设备(v0.6):两台机器都装插件时,可在 A 的设置里添加 B 的地址,侧边栏「远程设备」浮层内 iframe 操作 B 的 DSH(会话仍各自存储;要共享同一批工作区/会话,应只跑一个 DSH 宿主,另一台用浏览器打开其地址)。
安全默认¶
- 默认
enabled: false;密码至少 8 位;写接口需x-dsh-hub请求头(防 CSRF)。配置经同源路由/dsh-hub/*管理。 - 公网 TLS 由 cloudflared 终止,本机 Hub 不直接对公网裸暴露。DSH 能执行本机命令,密码泄露等同于机器控制权;密码明文存于
config.json(权限 0600),README 建议 16 位以上随机串,公网长期使用可叠加 Cloudflare Access。
工作原理(简述)¶
浏览器(含手机)→ cloudflared 或局域网 → 本机 Hub 反代(密码页、Host 改写、设备页)→ 127.0.0.1:<DSH 端口> → DSH 宿主。DSH 对 Host 的校验由 Hub 改写成 127.0.0.1:<port> 并配合本机会话 Cookie 完成对接。
安装与启用¶
从 npm 安装(推荐)¶
包名:
dsh-hub-plugin
- 桌面版:设置 → 插件 → 添加插件,填写
dsh-hub-plugin。 - 命令行(web profile):
dsh plugin --profile web add -w dsh-hub-plugin
从 GitHub 安装¶
https://github.com/dbssAlan/dsh-hub-plugin
- 桌面版:设置 → 插件 → 添加插件,填上述仓库地址。
- 命令行(web profile):
dsh plugin --profile web add -w https://github.com/dbssAlan/dsh-hub-plugin
安装后打开 Ctrl + , → 远程访问。桌面 profile 由 Electron 管理,不能用 dsh plugin --profile desktop 直接安装,需走桌面端插件页。
配置持久化¶
首次启动会在 %DSH_HOME%/dsh-hub-plugin/config.json 写入 Cordis 配置;之后以设置页或该 JSON 为准(JSON 覆盖 YAML)。主要字段:
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
false |
启用远程访问 |
password |
"" |
访问密码,至少 8 位 |
listenPort |
19388 |
本机反代端口 |
tunnel |
quick |
off / quick / named |
tunnelToken |
"" |
命名隧道 Token |
publicUrl |
"" |
命名隧道对外地址 |
targetPort |
0 |
目标 DSH 端口;0 为自动 |
典型用法¶
- 打开 设置 → 远程访问。
- 勾选「启用远程访问」。
- 填写访问密码(至少 8 位)。
- 选择隧道模式:
off(仅局域网)、quick(免费随机域名)、named(固定域名)。 - 点击「保存并重启」。
- 点击「打开设备导航页」,手机扫码 → 输入密码 → 进入 DSH。
仅局域网时可设 tunnel 为 off,在同一 WiFi 用 http://<本机IP>:19388(或你在设置里改的 listenPort)访问。命名隧道需在 Cloudflare Zero Trust 创建隧道,Public Hostname 指向 http://127.0.0.1:19388,在设置页选 named 并填入 Token 与 publicUrl。
健康检查与排错可参考:http://127.0.0.1:<listenPort>/_health;日志 %DSH_HOME%/dsh-hub-plugin/hub.log,状态 status.json。快速隧道重启后域名会变,固定域名用命名隧道。
适用场景与注意¶
适合:希望零第三方账号、在设置页一体化管理远程入口;需要直接发布桌面版 DSH;用手机浏览器随手继续本机会话(可添加到主屏幕,PWA 样式已考虑移动端安全区)。
不适合作为首要目标:README 写明移动端 UI 不如专门适配的插件或原生 App 精致;跨机合并工作区 / 会话同步在路线图 v0.7,需 DSH 核心扩展。
安装前:插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,并理解远程暴露的风险。不要编造未验证的部署案例;同类插件(如 dsh-pocket、dsh-remote、dsh-mobile)在形态、是否要云端账号、是否直连桌面版上各有取舍,可按 README 对比表选型。
结尾¶
dsh-hub-plugin 把「本机 DSH → 密码保护 → 局域网/公网浏览器访问」收进设置页:cloudflared、二维码、设备会话与多机浮层互控都在同一套配置里。需要细节、排错表与安全说明时,以仓库 README 与 SECURITY.md 为准。