DSH Tunnel QR Plugin 插件介紹:爲 DSH Web 提供 Quick Tunnel 二維碼訪問

前言

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。

它做的事情比較集中:

  1. 自動下載並校驗 cloudflared。
  2. 啓動 Cloudflare Quick Tunnel。
  3. 在 DSH 右下角提供二維碼入口。
  4. 通過一次性安全密鑰讓手機掃碼後自動登錄。

這個插件不安裝 LaunchAgent、Windows Service 或 systemd 服務,不需要管理員權限,只隨 DSH 進程運行。

核心功能

已覈實的能力如下:

  • 自動下載並校驗 cloudflared。
  • 啓動 Cloudflare Quick Tunnel。
  • 在 DSH 右下角提供二維碼入口。
  • 二維碼攜帶一次性安全密鑰。
  • 手機掃描後自動完成登錄,不需要輸入賬號或密碼。
  • 二維碼彈窗打開期間每 15 秒自動刷新一次,也可以手動刷新。
  • 每個安全密鑰僅能使用一次,默認 5 分鐘後過期。
  • 登錄成功後使用 HttpOnly、Secure、SameSite=Strict Cookie 訪問 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,再讓插件建立隧道:

  1. 隧道可用後會自動彈出二維碼。
  2. 也可以隨時點擊右下角「二維碼」按鈕再次查看。
  3. 手機掃描二維碼後會自動完成登錄。
  4. 二維碼彈窗打開期間每 15 秒自動刷新一次,也可以手動刷新。
  5. 登錄成功後,瀏覽器使用 HttpOnly、Secure、SameSite=Strict Cookie 訪問 HTTP 和 WebSocket。
  6. 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
羽毛球分组比赛记分
小程序二维码

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

小夜