前言¶
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 服務以生效。
典型用法¶
- UI 操作:在 DSH 會話頭部工具區點擊手機圖標按鈕(
order: -15),該按鈕位於“重啓”與“打開文件管理器”之間。在此面板中可查看狀態、開關網關、查看二維碼及管理設備。 - 配置文件:在
$DSH_HOME/profiles/web/cordis.patch.yml中配置dsh-mobile的移動網關參數(如端口、CA 指紋等)。 - 環境變量:通過設置
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 協議,按原樣提供。