前言¶
在 DeepSeek Harness (DSH) 中,代理配置通常涉及修改配置文件並重啓進程。dsh-proxy 插件解決了這個問題,它接管全局的 fetch 調用,允許通過 Web 設置或配置文件熱重載 HTTP(S)/SOCKS5 路由,無需重啓 DSH。
插件介紹¶
tr1v3r/dsh-proxy 是一個 DSH 插件,用於路由所有進程內出站請求(LLM 提供商、web_search、streamable-http MCP)。
- 維護者:tr1v3r
- 類別:聯網工具
- 許可證:MIT
核心功能¶
- 全局路由:攔截所有進程內出站請求,通過 HTTP(S) CONNECT 或 SOCKS5 代理轉發。
- 運行時切換:無需重啓,即可切換直連、跟隨系統或手動代理模式。
- 協議支持:支持 HTTP(S) 和 SOCKS5。
- Bypass 規則:支持 noProxy 規則(undici 風格匹配器)。
- 子進程環境變量:支持將代理環境變量導出給子進程(
exportEnv: true)。 - 系統代理檢測:支持 macOS 系統設置代理檢測(系統模式)。
- 迴環繞過:默認跳過本地迴環地址。
安裝與啓用¶
插件通過 npm 安裝。在目標配置文件目錄下執行以下命令:
dsh plugin --profile <name> install --no-frozen-lockfile
配置與使用¶
通過 Web 設置¶
- 打開 DSH Web 界面。
- 進入 Settings → General → Network proxy。
- 從下拉菜單選擇模式:Direct、Follow system 或 Manual。
- 在 Manual 模式下輸入代理地址和 Bypass 列表。文本字段在失焦時保存。
通過配置文件¶
編輯 ~/.config/dsh/profiles/<name>/cordis.patch.yml。
- id: dsh-proxy
config:
mode: manual # direct | system | manual
proxy: socks5://127.0.0.1:1080 # http://…, https://…, socks5://…
noProxy: # optional bypass list
- localhost
- .internal.example
- registry.corp:443
bypassLoopback: true # true: loopback stays direct
exportEnv: true # set HTTP(S)_PROXY for children
運行時切換¶
- Web 設置:在側邊欄底部(設置上方)使用圖標按鈕切換模式。
- 熱重載:修改
cordis.patch.yml後,配置會自動生效,無需重啓。
注意事項¶
- 憑證安全:嵌入用戶名/密碼的代理 URL 以明文存儲在磁盤上,僅受文件權限保護。建議在本地使用無認證代理。
- 環境變量傳播:憑證會作爲
HTTP(S)_PROXY環境變量傳播到 DSH 進程。子進程(如 stdio MCP 服務器)可讀取這些變量。 - 請求中斷:如果切換代理後,某個請求仍在運行約 30 秒,該請求將被中斷。
- 系統模式限制:系統模式目前僅支持 macOS,不支持 Windows 註冊表、Linux 桌面或 PAC。
- URL 有效性:無效的 URL 不會被保存。
總結¶
dsh-proxy 提供了 DSH 全局出站流量的代理控制,支持熱重載和多種模式。適合需要在開發或運行時動態切換網絡環境的場景。