前言¶
DeepSeek Harness (DSH) 提供了 Web GUI 用於管理智能體任務。默認情況下,Web 服務器的訪問控制通常較爲嚴格或需要修改底層配置。dsh-net-access 插件通過設置頁提供了一種集中式配置方案,支持將訪問範圍限定爲本機、Tailscale 網段、局域網,或者直接關閉。
核心功能¶
該插件通過一套配置項控制 Web GUI 的可達性,核心能力包括:
- 四種訪問模式:支持“僅本機”、“僅 Tailscale”、“所有本地網絡”和“關閉”四種狀態。
- 熱切換機制:除“關閉”模式外,其他三種模式支持在設置頁中直接切換,無需重啓進程。
- 信任圍欄:通過 Host 頭驗證來攔截未授權請求,在應用層執行訪問控制。
- 自動探測:自動探測 Tailscale 網卡名稱並解析 tailnet 地址,無需手動填寫 IP。
- 擴展授權:支持通過
extraTrustedHosts添加額外的授權 host[:port]。
安裝與啓用¶
插件安裝需要通過 DSH 的插件管理器添加。
- 執行安裝命令:
dsh plugin --profile web add dsh-net-access
- 安裝後必須重啓 GUI 以加載新組合包:
dsh --profile web
啓動時會打印可訪問的 URL,例如 `dsh web: http://127.0.0.1:3080/?token=...`。
配置與模式說明¶
配置位於 DSH 的設置 → 遠程訪問中,也可以寫入 cordis.patch.yml 的 config 塊。
| 字段 | 默認值 | 說明 |
|---|---|---|
mode |
local |
local、tailscale、all 或 off |
address |
"" |
固定 tailnet 地址;留空則自動探測 |
extraTrustedHosts |
[] |
額外接受的 host[:port] 授權 |
模式差異與工作原理¶
DSH 在啓動時只綁定一次 HTTP 監聽端口,因此改變綁定地址(如關閉模式)必須重啓。其餘三種模式保持套接字在所有網卡上監聽,通過應用層的“信任圍欄”來過濾請求。
1. 僅本機(local)¶
默認模式。端口對所有網卡開放,但任何非迴環地址的請求都會被攔截(返回 403)。
* 特點:局域網端口掃描可見,TCP 握手可完成,但無法通過認證。
* 注意:文檔中關於該模式“能熱切換”與“已知限制中需重啓”存在描述矛盾,請以設置頁實際生效爲準。
2. 僅 Tailscale(tailscale)¶
僅允許來自 Tailscale tailnet 地址的請求。
* 特點:自動探測 tailnet 地址。如果探測失敗,插件會回退到“關閉”模式並記錄原因,不會靜默放寬爲局域網訪問。
3. 所有本地網絡(all)¶
允許局域網內所有 IPv4 設備訪問。
* 特點:地址按請求採樣,但綁定地址不會隨網絡切換而移動。
4. 關閉(off)¶
將監聽地址收回爲迴環(127.0.0.1)。
* 特點:端口對局域網不可見,需要重啓生效。
適用場景與注意事項¶
- 適用場景:需要在手機上通過 Tailscale 訪問 GUI、開放給局域網內其他設備、或希望完全關閉遠程訪問。
- 限制:插件僅支持 IPv4,不探測 IPv6 網段。GUI 本身使用 HTTP,不提供 TLS 加密,流量依賴 Tailscale 或局域網本身的安全機制。
- 依賴:需要 Node.js 引擎版本
^22.19.0 || >=24.0.0。
總結¶
dsh-net-access 通過應用層的信任圍欄機制,解決了 DSH 默認配置在靈活性和安全性之間的平衡問題。它允許在不重啓進程的情況下動態調整訪問策略(除關閉模式外),適合對 Web 訪問範圍有精細控制需求的 DSH 用戶。