前言¶
DeepSeek Harness (DSH) 的核心設計之一是“一切皆插件”。在開發或調試過程中,切換出站代理(如從 HTTP 切換到 SOCKS,或切換代理地址)通常需要重啓應用或修改配置文件。dsh-proxy-control 插件提供了在運行時動態控制出站代理的能力,無需重啓。
核心功能¶
該插件主要解決以下問題:
- 三種來源三選一:支持內置(啓動環境)、系統(Windows 代理設置)、手動(自定義地址)三種模式。
- 立即生效:修改代理地址、直連名單或切換來源後,下一次請求即走新配置。
- 如實上報:界面顯示此刻實際生效的流量路徑,而非僅僅是插件的配置狀態。
- 覆蓋範圍:支持 fetch、web_fetch、子進程的出站流量。
- 流量控制:迴環地址強制直連;支持直連名單分流。
- 連通性自測:提供自測功能,按真實調用路徑驗證配置是否生效。
安裝與啓用¶
安裝前請確保環境滿足要求:DSH 0.2 系列與 Node.js 22+。
使用官方安裝命令:
dsh plugin --profile desktop add "/絕對路徑/dsh-proxy-control"
安裝後需要重啓一次,因爲 bundle 列表只在啓動時讀取。插件包內的 cordis.patch.yml 會自動插入 profile。若要直接修改配置,可編輯 profile 的 cordis.patch.yml:
- id: proxy-control
name: dsh-proxy-control
config:
mode: env # env 內置 / system 系統 / manual 手動
proxy: '' # 僅手動模式使用
noProxy: '' # 直連名單
testUrl: '' # 留空用默認自測地址
早期版本的
enabled與autoDetect已刪除;配置文件中若保留這些字段,會在下次保存時被清空。
使用方法¶
在 設置 → 代理 頁面操作。
界面分爲三行,分別對應三種來源(手動/系統/內置),未選中的會置灰並標明“未選中”。
- 重新讀取:點擊圖標按鈕,重新讀取內置來源或系統代理設置。
- 重新探測:針對系統代理,重新探測 Windows 註冊表中的設置。
- 測試:點擊圖標按鈕,向自測地址發起請求,驗證當前配置的連通性。
- 手動模式:直接輸入代理地址和直連名單,失焦或按回車即可保存。
- 查看結果:每一行下方會顯示“生效中的代理”以及“自測結果”。
配置項¶
| 配置項 | 說明 |
|---|---|
| 代理來源 | 內置 / 系統 / 手動 三選一。默認 內置,惰性加載,不改變任何行爲。 |
| 代理地址 | 僅手動模式使用,例如 http://127.0.0.1:7890。只接受 http 與 https 協議。 |
| 直連名單 | 主機名不走代理。僅手動/系統模式;內置模式以環境變量 NO_PROXY 爲準。 |
| 自測地址 | “測試”功能訪問的地址,留空則使用默認地址。 |
三種來源¶
| 界面名稱 | 數據來源 | 說明 |
|---|---|---|
| 手動 | 用戶輸入 | 手動指定代理地址和直連名單。 |
| 系統 | Windows 註冊表 | 僅桌面版可用。讀取 Internet Settings,不解析 PAC。 |
| 內置 | $DSH_HOME/.env 或啓動變量 |
插件不干預路由,僅讀取啓動環境配置。 |
內置模式是惰性的,裝上後默認不會改變任何行爲。若“生效中的代理”顯示爲“啓動環境(.env 或已導出的變量)”,說明流量走的是 DSH 啓動器那一層。
已知限制¶
- 協議限制:不支持 SOCKS,只接受
http/https。 - 平臺限制:系統代理僅在桌面版提供,Web 端禁用此項且不解析 PAC。
- 通配符限制:系統 bypass 列表被整份忽略,不支持通配符(如
127.*)。 - CIDR 限制:直連名單不支持 CIDR 格式(如
10.0.0.0/8)。 - 分類限制:不做按類別開關,LLM 對話與 web 搜索共用 URL。
- 啓動前限制:自定義 CA 需要在啓動前設置
NODE_EXTRA_CA_CERTS。 - 進程隔離:Electron 自身流量(自動更新、登錄頁)不受插件控制。
- 子進程策略:子進程跟隨策略,若
.env中也配置了代理,子進程會優先跟隨.env的值。
安全性¶
由於設置頁接口能改流量走向,插件對接口請求做了安全限制:
- 只接受本機請求(否則返回 403)。
- 要求 Host 爲迴環地址(擋 DNS 重綁定攻擊)。
- 拒絕可免預檢跨站發送的請求體形態(返回 415)。
- DSH 的 Web 服務器自身不帶認證或來源策略,第三方路由必須自己設防。
排錯¶
若遇到代理不生效,請查看 “生效中的代理” 那一行,這是權威讀數。
檢查子進程的環境變量(策略安裝後纔會發佈):
$env:HTTPS_PROXY; $env:NODE_USE_ENV_PROXY
日誌中通常會顯示類似信息:
proxy-control:出站請求經由 http://127.0.0.1:7890(手動指定),直連名單 api.deepseek.com
proxy-control:不干預路由(啓動環境裏沒有代理設置,按直連處理)
proxy-control:無法使用 <地址>(<原因>),出站請求保持直連
許可¶
MIT License