前言¶
DeepSeek Harness (DSH) 的 Web 界面默認綁定在本地迴環地址。在自託管或 Homelab 場景中,開發者通常需要從局域網內的其他設備訪問該服務。然而,官方 CLI 不支持直接指定 --host 0.0.0.0,這導致在非迴環地址暴露服務存在安全風險。dsh-lan-gate 通過插件層配置,允許監聽所有接口,並強制實施密碼和 CIDR 白名單,解決這一痛點。
插件介紹¶
dsh-lan-gate 是一個 DeepSeek Harness (DSH) 插件,定位爲 admin-security 類別。它由用戶 maxesisnclaw 維護。核心功能是爲 DSH Web 界面和 /api 接口提供密碼保護,並結合 CIDR 白名單機制,確保只有內網特定網段可以訪問服務。
核心功能¶
- 全接口監聽:通過 bundle patch 修改
webserver.host配置項爲0.0.0.0,從而在所有網絡接口上監聽服務。 - 密碼保護:初始狀態無密碼,必須先在迴環地址設置密碼。只有通過驗證後,UI 和 API 纔會對非迴環客戶端可見。
- CIDR 白名單:默認允許以下 IPv4 內網網段:
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。超出此範圍的請求將被拒絕。 - 拒絕代理頭:插件會攔截並拒絕包含
X-Forwarded-*、Forwarded或Via頭的請求。 - 迴環繞過:爲了便於調試和恢復,本地迴環地址訪問無需密碼即可通過。
- 安全存儲:密碼使用 scrypt 驗證器存儲,會話令牌爲隨機 32 字節值,僅將 SHA-256 哈希值保留在內存中。
- 配置文件:策略文件位於
$DSH_HOME/lan-gate.json,文件權限默認設置爲0600。
安裝與啓用¶
使用 DSH 官方插件源安裝:
dsh plugin --profile web add dsh-lan-gate
安裝完成後,插件會自動應用配置補丁並啓動。
配置與使用¶
- 初始化密碼:首先在本地訪問初始化頁面設置密碼。地址爲
http://127.0.0.1:3080/dsh-lan-full/login。此步驟僅允許通過迴環地址訪問。 - 局域網訪問:配置完成後,局域網內的客戶端嘗試訪問 DSH Web 界面時,會自動重定向至登錄頁。
- 策略管理:在 DSH 的設置界面中,進入 LAN 訪問 選項,可編輯 CIDR 白名單、代理頭拒絕策略以及修改密碼。
注意事項與適用場景¶
該插件以當前 DSH 進程的權限運行。在安裝前,建議檢查源碼與許可證(MIT)。
- 非 TLS 終止器:插件不提供 TLS 加密,在明文 HTTP 下,局域網內的觀察者仍可能嗅探到密碼和 Cookie。切勿將其部署在公共互聯網。
- 反向代理限制:不要將此插件部署在添加了轉發頭(Forwarding Headers)的反向代理後面,插件設計上會拒絕此類請求。
總結¶
dsh-lan-gate 提供了在 Homelab 環境下安全暴露 DSH Web 服務的基礎能力。更多細節請參考 GitHub 倉庫 或 DSH 社區目錄。