前言¶
DSH Web 默認只監聽 127.0.0.1,並且設置了 Host/Origin 柵欄,只允許本機訪問。這導致無法直接從手機或局域網內的其他設備連接。dshgo 插件解決了這個問題,它將 dsh web 暴露到局域網,並提供了移動端適配和訪問密碼功能。
它是什麼¶
dshgo 是一個包含插件和 Android 客戶端的組合。
* 插件:將 dsh web 的監聽地址改爲局域網可訪問,並提供一個設置頁籤用於查看地址、二維碼和配置密碼。
* App:爲手機和平板提供原生體驗,支持會話通知、批准操作、語音輸入等。
安裝¶
在終端執行以下命令安裝插件:
dsh plugin --profile web add github:xiazhi88/dshgo -w
安裝完成後,必須重啓 dsh web 才能生效。
注意:
* 升級時,如果之前安裝的是舊版 dsh-lan,需要先卸載舊包:dsh plugin --profile web remove dsh-lan。
* 插件依賴 DSH 版本 0.1.2-rc.1 及以上。
配置¶
如果需要自定義端口,可以在 profile 的 cordis.patch.yml 中配置:
- id: dshgo
config:
port: 3081 # 對外端口,默認 3081
bind: 0.0.0.0 # 對外綁定地址
使用¶
安裝並重啓 dsh web 後,DSH 設置中會出現一個名爲 「局域網訪問」 的一級頁籤。
- 查看地址:點擊頁籤即可看到本機所有可用地址和二維碼,手機掃描即可訪問。
- 本機訪問:同一臺機器上的瀏覽器也能通過該頁籤直接訪問。
- 訪問密碼:默認關閉。爲了安全,可以在頁籤中開啓訪問密碼,瀏覽器會顯示密碼頁,App 會使用指紋或面部解鎖。
安全提示:
* 該插件會把執行任意代碼的 DSH 暴露到局域網。
* 不要將地址或端口轉發到公網。
* 只在可信網絡(如家庭 WiFi)中使用。
Android App 功能¶
dshgo 的 Android App 提供以下功能:
* 會話通知:會話跑完或卡在批准時推送通知,可直接在通知欄點擊「允許」。
* 連接管理:管理多臺電腦的連接,查看狀態、延遲和插件版本。
* 語音輸入:在輸入框支持語音輸入。
* 主屏小組件:在手機主屏直接查看狀態並進行批准。
* 訪問閘門:與插件共享密碼,支持指紋、面部或設備密碼解鎖。
* 應用內更新:支持直接下載並安裝更新。
技術細節¶
- 柵欄繞過:插件將入站請求的 Host/Origin 統一改寫成
127.0.0.1:<dshPort>,繞過了 DSH Web 的 Host/Origin 柵欄。 - Polyfill:注入了
crypto.randomUUID和AbortSignal.any的 polyfill,以支持舊版 WebView 和非安全上下文。 - Token 注入:注入啓動 token,確保能獲取會話 cookie。
許可¶
MIT。