前言¶
dsh --profile web 的迴環訪問適合本機使用。如果需要在局域網內打開 dsh Web UI,直接綁定所有網卡會讓頁面、/api RPC 和 WebSocket 下行暴露在 HTTP 服務上。
studyzy/dsh-web-remote-access 是用於 dsh web profile 的 bundle 插件,用於支持 --host 0.0.0.0 遠程訪問,並讓遠程訪問始終經過 web token 門衛。它不改動 harness 源碼,卸載插件可完全還原默認行爲。
這是什麼¶
該插件由 studyzy 維護,許可證爲 MIT,需要 Node.js >= 18 和 dsh 環境。它作爲 dsh web profile 插件安裝,解決的問題是:讓 dsh Web UI 可以遠程訪問,同時保留迴環訪問的免令牌體驗。
核心功能¶
- 支持
--host 0.0.0.0遠程訪問,且始終有 web token 令牌保護。 - 頁面、
/apiRPC、WebSocket 下行經過 web token 門衛。 - 首次打開
?web_token=後,服務器 302 跳轉並下發dsh_web_token會話 Cookie。 - 迴環訪問無需令牌。
- 啓動時打印帶
?web_token=的 URL;綁定所有網卡時還打印 LAN 地址。 - 令牌校驗使用
sha256+timingSafeEqual常數時間比較。 /manifest.webmanifest豁免令牌,PWA 安裝檢測不受影響。- 已認證
/api請求以迴環權威呈現,使settings.*、credentials.*、agentPreset.*、host.*、llm.discoverModels可遠程訪問。 - 不改動 harness 源碼,全部通過 bundle 插件實現。
- 卸載插件可完全還原默認行爲。
安裝¶
在 dsh 環境中執行:
dsh plugin --profile web add git@github.com:studyzy/dsh-web-remote-access.git
安裝後,下面介紹啓動方式。
典型用法¶
固定令牌啓動遠程訪問:
dsh --profile web --host 0.0.0.0 --web_token <token>
使用環境變量提供令牌:
DSH_WEB_TOKEN=<token> dsh --profile web --host 0.0.0.0
未指定令牌時啓動遠程訪問:
dsh --profile web --host 0.0.0.0
迴環訪問:
dsh --profile web
--web_token 僅對 --host 0.0.0.0 綁定啓用。缺省時回退到 $DSH_WEB_TOKEN,再回退到啓動時隨機生成的令牌。未顯式指定遠程令牌時,生成的隨機令牌會打印在啓動 URL 裏。
首次訪問帶令牌的 URL:
http://<host>:<port>/?web_token=<token>
成功後會跳轉到乾淨路徑,並下發 dsh_web_token 會話 Cookie。
訪問控制與限制¶
- 無 TLS、無賬號體系;這是純 HTTP 上的共享密鑰門衛。除可信網絡外,請用真正的反向代理前置 dsh web 終結 TLS。
- 令牌首次打開時出現在地址欄/歷史記錄裏,重定向後會從地址欄清除。
/manifest.webmanifest僅GET/HEAD不要求令牌,用於 PWA 安裝檢測。- 已知限制:
DSH_WEB_URL與 web-surface 模型提示仍是無令牌的迴環 URL;本 bundle 不提供帶令牌的模型側 URL。 - 插件以當前 dsh 進程權限運行。安裝前應檢查源碼與許可證。
結尾¶
這個插件適合在可信網絡內讓 dsh Web UI 被遠程瀏覽器訪問,同時保持迴環訪問的簡單性。
- GitHub:https://github.com/studyzy/dsh-web-remote-access
- 目錄頁:未在已覈實資料中提供具體 URL;可按插件名
studyzy/dsh-web-remote-access在 DSH 社區目錄中查找。