dsh-sakurafrp: 通過 SakuraFrp 管理手機與桌面互聯的插件

前言

dsh-sakurafrp 是一個爲 dsh-mobile 插件設計的衛星插件,用於從 DSH UI 界面直接管理手機與桌面之間的連接(SakuraFrp TCP 隧道 + dsh-mobile 網關)。該插件通過圖形化操作替代了原先需要編寫腳本、修改 YAML 文件或手動維護 systemd 的流程。

根據 GitHub 倉庫說明,該插件屬於“Vibe coding”產物,代碼由作者與 AI 對話生成並經多輪迭代而來,未經過人工逐行審計。它按 MIT 協議“按原樣(AS IS)”提供,不附帶任何擔保,風險自負。

核心功能

該插件提供了以下核心管理能力:

  • 鏈路狀態一屏可見:在面板上直接顯示網關運行狀態、延遲、已配對設備數以及守護狀態。
  • 一鍵開關手機訪問:通過 UI 直接控制 dsh-mobile 的移動網關(等價於 API 調用)。關閉操作會留下抑制標記,防止自愈機制自動拉回。
  • 配對二維碼:生成一次性配對窗口的二維碼與鏈接,支持手機端掃碼配對。
  • 設備管理:支持逐臺撤銷設備或一鍵清空設備列表。
  • 網關自愈:內置自愈機制,每 15 秒檢查一次網關狀態,發現異常自動拉起。
  • 公網可達性探測:每 60 秒探測主入口及運營商前綴節點,面板直接顯示連通性。
  • 外部守護開關:控制 dsh-mobile-lan-watchdog.service 的啓停(該服務爲冗餘層,插件自帶自愈已可獨立兜底)。

安裝與啓用

安裝過程需要執行克隆、進入目錄及運行安裝腳本。

git clone https://github.com/ankhishtar2-lang/dsh-sakurafrp.git
cd dsh-sakurafrp
bash scripts/install.sh

安裝腳本會執行以下操作:
1. 將插件文件拷貝至 $DSH_HOME/profiles/web/node_modules/。
2. 將 dsh-sakurafrp 追加進 dsh.profile.bundles。
3. 進行靜態自檢(檢查 apply 導出是否存在)。

安裝完成後,需重啓對應的 DSH Web Profile 服務以生效。

典型用法

  1. UI 操作:在 DSH 會話頭部工具區點擊手機圖標按鈕(order: -15),該按鈕位於“重啓”與“打開文件管理器”之間。在此面板中可查看狀態、開關網關、查看二維碼及管理設備。
  2. 配置文件:在 $DSH_HOME/profiles/web/cordis.patch.yml 中配置 dsh-mobile 的移動網關參數(如端口、CA 指紋等)。
  3. 環境變量:通過設置 DSH_SAKURA_ORIGIN 等環境變量來覆蓋默認行爲或配置公網入口。

依賴與要求

該插件有明確的運行期硬依賴和平臺限制:

  • 運行期硬依賴:
    • dsh-mobile 插件:提供本機管理接口。
    • SakuraFrp 啓動器(frpc):提供公網 TCP 隧道。
  • 平臺與版本:
    • 操作系統:僅支持 Linux / WSL2。
    • Node.js:需要 >= 20。
    • DSH 核心:需在 0.1.5-rc.1 系列的 web profile 上驗證。
  • 運行期軟依賴:
    • dsh-mobile-lan-watchdog.service:外部自愈服務(可選)。

注意事項

  • Vibe Coding 警告:代碼由 AI 生成,未經人工審計,不建議直接用於生產環境或處理安全敏感的數據。
  • 平臺限制:目前僅支持 Linux 和 WSL2,代碼中使用了 systemctl --user 等 POSIX 特性。
  • 許可證:遵循 MIT 協議,按原樣提供。
羽毛球分组比赛记分
小程序二维码

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

小夜