前言¶
DeepSeek Harness (DSH) 的 Web 界面(通過 --profile web 啓動)默認綁定在本地迴環地址(通常是 127.0.0.1)。要在局域網內的另一臺設備上訪問該界面,需要修改服務器的監聽地址。dsh-remote-access 插件通過環境變量覆蓋配置,允許 Web 界面監聽所有網絡接口,同時複用 DSH 內置的瀏覽器認證機制,避免引入額外的認證插件。
插件定位¶
這是一個由 sysit 維護的出站(Out-of-tree)插件,屬於 DSH 的 web-profile bundle。它的核心定位是:
* 輕量級:僅包含一個配置行,不 fork 進程。
* 無侵入認證:不創建新的認證邏輯,完全依賴 DSH 內置的 ?token= BrowserAuth。
* 升級友好:配置爲聲明式層,重啓即生效,無需重新應用。
核心功能¶
- 多網卡監聽:使
dsh --profile webGUI 能夠監聽在0.0.0.0上。 - 遠程訪問:允許從局域網內的其他設備打開該 GUI。
- 環境變量控制:通過
DSH_WEB_HOST環境變量覆蓋默認的webserver配置項。 - 自動打印 URL:當服務器綁定到
0.0.0.0時,啓動日誌會自動打印包含 LAN 地址的 URL。 - 內置認證:使用 DSH 內置的
?token=認證機制,不依賴插件自身實現認證。
安裝與啓用¶
安裝該插件需要使用 DSH 的插件管理命令。它會將 @sysit/dsh-remote-access 添加到當前 profile 的 dsh.profile.bundles 中。
dsh plugin --profile web install github:sysit/dsh-remote-access
安裝後,插件會向 dsh.profile.bundles 注入一個覆蓋 webserver host 的配置行。由於它是 profile 級別的補丁,每次 DSH 啓動時加載器都會重新讀取此配置,因此插件升級或 DSH 升級後無需重新應用。
典型用法¶
通過設置 DSH_WEB_HOST 環境變量來控制監聽地址。默認情況下,如果環境變量未設置,插件會將主機設置爲 0.0.0.0。
| 場景 | 命令 |
|---|---|
| 局域網訪問 (默認) | export DSH_WEB_HOST=0.0.0.0 && dsh --profile web --no-open |
| 僅本機訪問 | unset DSH_WEB_HOST 或 DSH_WEB_HOST=127.0.0.1 dsh --profile web |
| 保持默認 | export DSH_WEB_HOST="${DSH_WEB_HOST:-0.0.0.0}" |
啓動成功後,日誌中會同時顯示本地地址和 LAN 地址:
dsh web: http://127.0.0.1:3080/?token=eqeU… (LAN: http://192.168.1.5:3080/?token=eqeU…)
在另一臺設備上打開 LAN: 後面的 URL,即可直接訪問。
適用場景與注意事項¶
- 網絡暴露:將
DSH_WEB_HOST設置爲0.0.0.0會使 Harness 暴露在你的網絡中。請務必妥善保管打印出的 token,並在遠程訪問時使用--no-open參數以避免瀏覽器自動打開。 - 安全機制:DSH 的跨站/DNS 綁定防禦(
api-request-trust)保持開啓,trustedHosts會自動識別局域網 IP。對於不可信的網絡,建議優先使用 SSH 端口轉發或 VPN。 - API 暴露:
/apiRPC 接口的暴露程度取決於你如何配置 host,插件本身不涉及此配置。 - 跨進程認證:token 是進程級的,每次重啓會變化;但瀏覽器 Cookie 的有效期默認爲 30 天,因此已打開的標籤頁在重啓後通常仍可使用。
結尾¶
dsh-remote-access 提供了一種簡單、標準化的方式來擴展 DSH Web 界面的訪問範圍,而不引入複雜的第三方認證邏輯。它通過環境變量控制監聽地址,利用 DSH 內置的安全機制,適合需要在局域網內共享 DSH Web UI 的開發場景。