前言¶
DSH 的插件机制强调「一切皆插件」,可以把 Web 侧能力拆成独立插件加载。对于 DSH Web 来说,一个常见需求是把本机页面临时开放到公网,让手机或其他设备通过浏览器访问;已有做法通常需要注册第三方账号、配置域名,或手动运行隧道程序。
下面介绍 13323232dong/dsh-tunnel-qr-plugin。它是为 DeepSeek Harness Web 提供公网访问的一体化插件,通过 Cloudflare Quick Tunnel 和本机认证代理生成二维码,手机扫描后即可登录访问,不需要输入账号或密码,也不需要注册第三方账号或配置域名。
这是什么¶
dsh-tunnel-qr-plugin 由 13323232dong 维护,许可证为 MIT,当前版本为 0.1.0-rc.5。
它做的事情比较集中:
- 自动下载并校验
cloudflared。 - 启动 Cloudflare Quick Tunnel。
- 在 DSH 右下角提供二维码入口。
- 通过一次性安全密钥让手机扫码后自动登录。
这个插件不安装 LaunchAgent、Windows Service 或 systemd 服务,不需要管理员权限,只随 DSH 进程运行。
核心功能¶
已核实的能力如下:
- 自动下载并校验
cloudflared。 - 启动 Cloudflare Quick Tunnel。
- 在 DSH 右下角提供二维码入口。
- 二维码携带一次性安全密钥。
- 手机扫描后自动完成登录,不需要输入账号或密码。
- 二维码弹窗打开期间每 15 秒自动刷新一次,也可以手动刷新。
- 每个安全密钥仅能使用一次,默认 5 分钟后过期。
- 登录成功后使用
HttpOnly、Secure、SameSite=StrictCookie 访问 HTTP 和 WebSocket。 - 不需要注册第三方账号或配置域名。
- 公网入口只连接回环地址上的认证代理,不会直接暴露 DSH 本地端口。
- 插件不会把二维码令牌、会话 Cookie 或临时公网地址写入仓库。
- 所有状态和二维码接口都使用
Cache-Control: no-store。
安装与启用¶
先确认本机 Node.js 版本不低于 22.19。
然后使用 DSH 官方 profile 插件命令安装固定提交:
npx -p @deepseek-ai/dsh dsh plugin --profile web add "github:13323232dong/dsh-tunnel-qr-plugin#88d36735b54cfe28bb16d4f72058f96bf43df53d"
安装完成后,重启 Web profile。
首次启动时,插件会从 Cloudflare 官方 GitHub Release 下载对应平台的固定版本,校验 SHA-256 后缓存到 DSH 插件数据目录。下载和隧道启动完成后,可以查看右下角二维码按钮。
典型用法¶
经过上面的步骤后,典型流程是先启动 DSH Web,再让插件建立隧道:
- 隧道可用后会自动弹出二维码。
- 也可以随时点击右下角「二维码」按钮再次查看。
- 手机扫描二维码后会自动完成登录。
- 二维码弹窗打开期间每 15 秒自动刷新一次,也可以手动刷新。
- 登录成功后,浏览器使用
HttpOnly、Secure、SameSite=StrictCookie 访问 HTTP 和 WebSocket。 - Quick Tunnel 地址可能在 DSH 或隧道重启后变化;旧地址、旧二维码和旧会话会失效。
开发验证可以在插件仓库里执行:
pnpm install --frozen-lockfile
pnpm verify
verify 会运行 Host/Client 类型检查、无网络单元与集成测试、Host/Client 构建和 Git 产物漂移检查。
支持平台¶
| 系统 | 架构 | 运行方式 |
|---|---|---|
| macOS | x64、ARM64 | Cloudflare 官方原生程序 |
| Linux | x64、ARM64 | Cloudflare 官方原生程序 |
| Windows | x64 | Cloudflare 官方 AMD64 程序 |
| Windows ARM64 | ARM64 | 通过 Windows x64 emulation 运行官方 AMD64 程序,不是原生 ARM64 支持 |
如果当前系统或架构没有明确映射的 Cloudflare 发布物,插件会表现为平台不支持,不会尝试运行其他架构文件。
状态与排查¶
常见状态可以按下面处理:
正在启动:正在校验或下载程序并建立隧道。正在重连:临时连接中断,插件正在有限次数重试。启动失败:可刷新二维码重新读取状态;若仍失败,检查 GitHub 下载网络和本机防火墙。平台不支持:当前系统或架构没有明确映射的 Cloudflare 发布物,插件不会尝试运行其他架构文件。
依赖与运行边界¶
插件的 peer 依赖如下:
@deepseek-ai/cordis >=4.0.1 <5
@deepseek-ai/dsh-client-runtime ^0.1.0-rc.5
@deepseek-ai/dsh-host-webserver ^0.1.0-rc.5
运行时需要注意:
- 插件只随 DSH 进程运行,不安装系统服务。
- 不需要管理员权限。
- 公网入口连接的是回环地址上的认证代理,不会直接暴露 DSH 本地端口。
- 二维码令牌、会话 Cookie 或临时公网地址不会写入仓库。
- Quick Tunnel 地址、二维码和会话会随 DSH 或隧道重启而变化。
适用场景与注意¶
这个插件适合需要临时把 DSH Web 开放给手机、笔记本或其他网络设备的场景,尤其是希望避免手工配置域名、第三方账号或隧道服务的本地开发环境。
安装前建议先查看源码和许可证。插件以当前 DSH 进程权限运行,因此你应确保对 DSH 运行环境本身有信任。若本机网络无法访问 GitHub、Cloudflare Release 或 Quick Tunnel 地址,插件可能无法完成下载、启动或访问。
参考链接¶
目录页可作为插件线索,具体信息以平台目录为准:
https://www.skillhub.cn/plugins/13323232dong/dsh-tunnel-qr-plugin
GitHub 仓库:
https://github.com/13323232dong/dsh-tunnel-qr-plugin