dsh-plugin-qr-connect:爲 DSH Web 添加掃碼連接入口

前言

DSH 的理念是「一切皆插件」,Web 端能力也可以通過插件接入。dsh-plugin-qr-connect 是一個 DSH Web 插件:它在側邊欄 Settings 按鈕上方添加一個 QR-code 按鈕,點擊後展示本地網絡和公共互聯網兩個二維碼,並通過一個認證反向代理讓掃描設備打開 DSH Web UI。

它解決的問題比較具體:當手機端或其他設備需要訪問運行在本地的 DSH Web UI 時,可以用掃碼方式進入,而不需要直接在網絡上暴露無鑑權端口。下面介紹它的功能、安裝方式和注意事項。

這是什麼

dsh-plugin-qr-connect 是 mervyn-teo 維護的 DSH Web 插件,許可證爲 MIT。

它作爲持久 bundle 插件包含 host half 與 browser half,並在每次啓動時加載。運行後會啓動一個認證反向代理子進程,驗證 auth secret、發放 session cookie,並轉發到 loopback Web UI;WebSocket 升級也被支持,因此手機端可以看到 live updates。

核心功能

下面列出插件提供的能力:

  • 在側邊欄 Settings 按鈕上方添加 id 爲 qr-connect 的全寬 QR-code 按鈕。
  • 打開一個包含本地網絡和公共互聯網兩個二維碼的面板,鏈接中包含 auth secret。
  • 運行認證反向代理子進程,驗證 secret、發放會話 cookie,並轉發到 loopback Web UI。
  • 支持 secret 自動輪換和 QR 刷新,默認 30 秒;配置爲 0 可禁用自動刷新。
  • 點擊二維碼可複製鏈接,公共 QR 帶有 info tooltip。
  • 在 Settings → Plugins 下提供 QR connect 卡片,用於配置代理端口、會話長度和刷新間隔。
  • 通過 DSH locale service 提供英文和中文 UI。

安裝與啓用

先安裝插件:

dsh plugin --profile web add github:mervyn-teo/dsh-plugin-qr-connect

安裝後重啓 dsh web,因爲 host bundles 在啓動時加載。

dsh web

典型用法

安裝並重啓後,可以從界面或配置文件調整行爲。

1、從 Settings → Plugins 的 QR connect 卡片調整:

port
sessionDays
refreshSeconds

2、也可以修改 cordis.patch.yml 後重啓:

cordis.patch.yml

可修改的配置項包括:

port
sessionDays
refreshSeconds
publicHost

publicHost 可填 host、host:port 或完整 https:// origin;留空則自動檢測。

使用前需要確認網絡可達性:

  • 掃描設備必須能訪問代理端口。
  • 使用公共 QR 時,還需要 internet reachability,可能需要端口轉發。
  • 公共 IP 查找需要 DSH 主機可訪問 https://api.ipify.org。

適用場景與注意

這個插件適合作爲可信網絡內的便利工具,不適合當作加固的遠程訪問層。

需要特別注意:反向代理會向可達該端口的任何人暴露完整 agent shell,僅由 30 秒 secret 和 session cookie 保護。因此建議使用較短會話時長,並只在你信任的網絡中使用。

運行要求:

  • DSH 需要掛載 subprocess、fs、webServer 服務。
  • Settings → Plugins 卡片需要 settings 服務;如果沒有該服務,卡片會隱藏,並且編輯僅運行時有效。
  • host half 支持 Windows、macOS 和 Linux。

安裝前,建議檢查源碼和許可證;該插件以當前 dsh 進程權限運行。許可證爲 MIT。

相關鏈接

社區目錄頁是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不要把它理解爲官方應用商店。

羽毛球分组比赛记分
小程序二维码

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

小夜