前言¶
對於需要從同一局域網手機訪問本機 DeepSeek Harness(DSH)Web UI 的場景,通常需要處理設備審批、令牌綁定、限流和移動端排版等問題。dsh-mobile-gate 提供一個獨立 Node 網關,反向代理 DSH Web UI,並在訪問鏈路中加入首次訪問審批、按設備令牌、每 IP 限流和移動端佈局注入。
這是什麼¶
dsh-mobile-gate 由 Bernardxu123 維護,許可證爲 MIT。它的定位是 DSH 的局域網手機網關:網關監聽 0.0.0.0,反向代理 DSH Web UI;首次訪問需要本機批准;批准後設備通過 Cookie 領取令牌;同時向代理返回的 HTML 注入移動端適配內容。
核心能力¶
下面介紹已覈實的幾項能力:
- 代理 HTML 時注入
data-lan-device標記、緊湊排版 CSS 和crypto.randomUUIDpolyfill。 - 首次訪問審批:手機第一次訪問顯示等待本機批准,需要在電腦上手動允許。
- 批准後生成一次性令牌,一次批准只綁定一個瀏覽器,令牌無法被其他設備複用。
- 每 IP 限流,默認每分鐘 120 次請求,超限返回 429。
- 迴環地址與本機 LAN IP 直接放行。
- 網關是獨立子進程,不修改 DSH 主服務配置,也不動信任柵欄。
- 支持
dsh plugin add、cordis.patch.yml靜態掛載或動態插件方式安裝,移除即終止。
安裝與啓用¶
如果已經在本機取得插件目錄,可以在該目錄中執行安裝命令:
dsh plugin --profile web add ./dsh-mobile-gate
項目還支持 cordis.patch.yml 靜態掛載或動態插件方式安裝。無論使用哪種方式,移除插件後網關終止。
典型用法¶
啓用後,先在電腦瀏覽器打開管理頁:
http://127.0.0.1:3088/lan-gate/admin
然後讓手機連接同一 Wi-Fi,訪問管理頁中列出的地址,例如:
http://192.168.31.108:3088
手機首次訪問會顯示等待批准。回到電腦管理頁的「待批准設備」中,爲這臺設備選擇訪問方式:
- 手機
- 電腦
- 自動
點允許後,在手機端刷新頁面,即可領取令牌並進入 DSH Web UI。
如果希望在本機直接查詢網關狀態,可以執行:
curl http://127.0.0.1:3088/lan-gate/status
批准示例如下,其中 kind 爲 phone:
curl -X POST http://127.0.0.1:3088/lan-gate/action -H 'Content-Type: application/json' -d '{"action":"approve","ip":"192.168.31.125","kind":"phone"}'
配置與狀態¶
默認環境變量如下:
LAN_GATE_PORT=3088
LAN_GATE_HOST=0.0.0.0
LAN_GATE_TARGET_PORT=3080
LAN_GATE_RATE_LIMIT=120
LAN_GATE_PORT 表示網關監聽端口,LAN_GATE_HOST 表示監聽地址,LAN_GATE_TARGET_PORT 表示 DSH Web UI 目標端口,LAN_GATE_RATE_LIMIT 表示每 IP 每分鐘請求上限。
端口被佔用時,網關會自動遞增嘗試,最多增加 20 個端口。設備審批記錄持久化在:
~/.dsh/lan-gate-state.json
待批准列表是內存態,重啓後需要設備重新訪問觸發。
適用場景與注意¶
適合在可信局域網內把 DSH Web UI 接入手機,尤其希望保留本機審批、設備令牌和限流時。使用注意:
- 網關沒有獨立認證層,僅限可信局域網使用。
- DSH Web UI 走明文 HTTP,令牌經 Cookie 傳遞,請勿跨不可信網絡使用。
- 建議定期在管理頁執行全部撤銷,並重新審批設備。
- 插件以當前
dsh進程權限運行。安裝前應檢查源碼,並確認 MIT 許可證符合你的使用要求。
項目地址¶
GitHub:
https://github.com/Bernardxu123/dsh-mobile-gate.git