dsh-plugin-mobile-gateway:iPhone 通過設備鑑權 WebSocket 連接 DSH

前言

DSH 插件生態遵循「一切皆插件」的思路。對於已經在使用 DSH 的人來說,如果希望在 iPhone 上繼續訪問同一套 DeepSeek Harness,就需要一個可供 iOS 客戶端連接、且帶設備鑑權的 WebSocket 入口。

dsh-plugin-mobile-gateway 面向這個場景:它安裝在 DSH Web 插件 profile 下,在 DSH WebUI 中提供“移動設備”入口,用於開啓網關、生成配對二維碼和管理可信設備。

這是什麼

dsh-plugin-mobile-gatewayClarklevis1995 維護,許可證爲 MIT。它讓 iPhone 通過經過設備鑑權的 WebSocket 連接 DeepSeek Harness。

插件使用的 WebSocket 路徑爲:

/ws/mobile

當前 package.json 版本爲 0.6.5。Linux 服務器一鍵公網安裝從 v0.6.4 開始提供。

核心能力

下面介紹已覈實的主要能力:

  • 在 DSH WebUI 左側邊欄提供“移動設備”入口
  • 可開啓網關、生成配對二維碼和管理可信設備
  • 支持局域網 WebSocket 接入:ws://<局域網 IP>:3081/ws/mobile
  • 支持 Linux 服務器公網 WebSocket 接入:wss://<公網 IP>/ws/mobile
  • 通過二維碼進行 iOS 設備配對
  • 支持通過 Tailscale Serve 或 Cloudflare Quick Tunnel 遠程連接 3081 端口
  • Linux 服務器公網場景可安裝系統 Helper、Nginx、Certbot 和證書續期定時器
  • 提供 statusremoveremove-helper 等公網入口/Helper 管理命令

安裝與啓用

安裝前確認已安裝 dsh CLI 和 pnpm,並能正常啓動 dsh web

執行以下命令安裝插件:

dsh plugin --profile web add dsh-plugin-mobile-gateway@latest

安裝後停止並重新啓動 WebUI:

dsh web

啓動後打開 WebUI,確認左側邊欄出現“移動設備”。

局域網配對

如果 iPhone 與運行 DSH 的電腦位於同一局域網,可以按下面的步驟配對。

1、打開 WebUI 的“移動設備”。

2、開啓“允許移動設備連接”。

3、保持“設備鑑權”開啓。

4、填寫設備名稱並點擊“生成配對二維碼”。

5、在 iOS 客戶端打開“設備認證”,掃描二維碼。

6、等待 WebUI 的可信設備顯示“在線”。

局域網接入地址爲:

ws://<局域網 IP>:3081/ws/mobile

注意:

  • 配對二維碼只能使用一次,並會在 5 分鐘後過期。
  • 如果系統防火牆攔截連接,只允許私有網絡訪問 TCP 3081
  • 不要把 TCP 3081 開放到公網,也不要開放 DSH WebUI 端口。

Linux 服務器公網接入

Linux 服務器公網配對適用於帶固定公網 IPv4 的 Ubuntu/Debian 服務器,當前尚不支持 CentOS。

先執行初始化命令:

npx --yes dsh-plugin-mobile-gateway@latest init

該命令會請求一次 sudo 權限,用於安裝系統 Helper、Nginx、Certbot 和證書續期定時器。執行完成後啓動或重新啓動:

dsh web

進入 WebUI 的“移動設備”,在“公網接入”填寫公網 IPv4,並點擊“配置公網接入”或“更新公網配置”。

公網 WebSocket 地址爲:

wss://<公網 IP>/ws/mobile

配對步驟與局域網相同,但公網調試時必須保持“設備鑑權”開啓。

使用 Tailscale 或 Cloudflare Quick Tunnel

如果沒有直接的公網 IPv4 入口,可以使用 Tailscale Serve 或 Cloudflare Quick Tunnel 將 3081 端口轉發出來。使用前先啓動 dsh web,並在“移動設備”面板開啓“允許移動設備連接”和“設備鑑權”。

Tailscale Serve 可執行:

tailscale serve --bg 3081

然後將生成的地址改爲:

wss://<設備名>.<tailnet>.ts.net/ws/mobile

填入 WebUI,再生成二維碼配對。

Cloudflare Quick Tunnel 可執行:

cloudflared tunnel --url http://127.0.0.1:3081

命令行會顯示類似:

https://<隨機名稱>.trycloudflare.com

將地址改爲:

wss://<隨機名稱>.trycloudflare.com/ws/mobile

填入 WebUI,再生成二維碼配對。Cloudflare Quick Tunnel 僅用於臨時調試,地址每次可能變化且沒有可用性保證。

管理與卸載

查看公網入口狀態:

sudo env "PATH=$PATH" npx --yes dsh-plugin-mobile-gateway@latest status

插件還提供 removeremove-helper 兩類管理命令,分別用於移除公網入口或系統 Helper。執行前請確認當前服務器用途。

卸載插件:

dsh plugin --profile web remove dsh-plugin-mobile-gateway

源碼開發

源碼開發時需要以 file: 路徑安裝插件,並重啓 dsh web

適用場景與注意

  • 適合需要在 iPhone 上通過 iOS 客戶端接入 DSH 的場景。
  • 適合局域網、Linux 服務器公網 IPv4,或通過 Tailscale / Cloudflare Quick Tunnel 遠程連接的場景。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
  • 不要把 DSH WebUI 端口或 TCP 3081 開放到公網。
  • 公網調試時必須保持設備鑑權開啓。
  • 配對二維碼只能使用一次,並會在 5 分鐘後過期。
  • Linux 服務器公網接入適用於 Ubuntu/Debian,當前不支持 CentOS。

鏈接

GitHub 倉庫:

https://github.com/Clarklevis1995/dsh-plugin-mobile-gateway
羽毛球分组比赛记分
小程序二维码

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

小夜