前言¶
在 Windows 上跑 DeepSeek Harness(下稱 DSH),如果需要走代理,常見做法有兩種:給代理軟件打開 TUN 模式,讓它接管整臺機器的路由;或者在啓動 DSH 之前手動設置 HTTP_PROXY / HTTPS_PROXY 環境變量。前者要建虛擬網卡改路由,後者容易漏掉子進程,而且要在每個終端裏重複配置。
下面介紹的 bozheng-li/dsh-system-proxy 走的是第三條路:讀取 Windows 當前用戶已經配置好的 WinINET 系統代理,讓 DSH 內部的模型請求、插件安裝和開發工具共用這條網絡路徑,不需要 TUN,也不需要手工填 IP 和端口。
這是什麼¶
dsh-system-proxy 是一個 DSH 插件,維護者是 Bozheng-Li。它解決的問題很單一:讓運行在 Electron 中的 DSH 直接複用 Windows 系統代理,同時保持系統網絡不被接管。
插件當前版本是 0.1.1,GitHub 星標 1,許可證爲 MIT,目錄下有對應的 npm 包 dsh-system-proxy。它的運行鏈路可以概括爲:
Windows WinINET ──> System Proxy ──> DSH / undici / child processes
│
└── TUN: not required
也就是說,插件在 DSH 啓動時讀取當前用戶的 WinINET 設置,把代理規則注入 Node.js/undici 的請求路徑以及 DSH 派生的子進程。
核心能力¶
README 裏列出的能力有三項,這裏按原文記錄:
- 自動讀取當前用戶的 Windows HTTP 代理,不需要提前填寫地址和端口。
- 不改路由、不創建虛擬網卡、不開放監聽端口,等於不接管系統網絡。
- 模型請求、Web Search、HTTP MCP、pnpm 與 git 共用同一條代理路徑,安裝工具同樣生效。
覆蓋範圍有邊界,README 寫得很明確:插件覆蓋 Node.js/undici 請求及 DSH 派生的子進程;Electron 自身負責的登錄與更新流量不保證覆蓋。
安裝與啓用¶
插件對宿主版本和操作系統有要求:DSH 0.2.1-rc.2 至 0.3.0 之前的版本,Windows 10/11,Node.js 要求 >=22.19.0。
最簡安裝方式是在 DSH 的「插件 → 添加插件」中輸入包名:
dsh-system-proxy@0.1.1
安裝完成後需要完全退出並重新打開 DSH,否則插件不會在下一次啓動時接管請求。
如果習慣用命令行,可以用下面的方式。前提是 dsh 已經在 PATH 中:
dsh plugin --profile desktop add dsh-system-proxy
桌面版自帶的 CLI 不在 PATH 時,可以直接調用它的完整路徑:
& "D:\deepseek-harness\resources\runtime\cli\bin\dsh.cmd" `
plugin --profile desktop add dsh-system-proxy
也可以從 GitHub 直接安裝:
dsh plugin --profile desktop add "github:Bozheng-Li/dsh-system-proxy"
啓用步驟按順序是三步:
- 打開代理軟件的系統代理。
- 保持 TUN 關閉。
- 重啓 DSH。
插件啓動時讀取 Windows 當前用戶的 WinINET 設置,默認不需要填寫 IP 或端口。
典型用法¶
大部分場景下不需要額外配置,插件默認值已經夠用:
mode: auto
useWindowsBypass: true
mode: auto 表示跟隨 Windows 系統代理,useWindowsBypass 爲 true 表示合併 Windows 的繞過列表。
如果希望固定使用某個代理地址,在 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml 中加入:
- id: system-proxy
config:
mode: manual
proxyUrl: http://127.0.0.1:7897
配置項與優先級按 README 的記錄如下:
| 配置 | 說明 |
|---|---|
mode: auto |
跟隨 Windows 系統代理,默認 |
mode: manual |
始終使用 proxyUrl |
mode: off |
不應用插件代理 |
useWindowsBypass |
合併 Windows 繞過列表,默認 true |
優先級從高到低是:顯式 HTTP_PROXY / HTTPS_PROXY 環境變量 → 插件配置 → Windows 系統代理。
兩個限制需要注意:PAC/WPAD 不支持;SOCKS 代理需要填寫代理軟件提供的 HTTP 或 mixed 端口。
驗證與排查¶
插件接管後,啓動日誌中會出現這一行:
dsh-system-proxy: using http://127.0.0.1:7897 from Windows system proxy
想確認 Windows 側設置和代理端口是否正常,可以執行:
Get-ItemProperty `
'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' |
Select-Object ProxyEnable, ProxyServer
Test-NetConnection 127.0.0.1 -Port 7897
如果插件沒有生效,README 建議依次檢查:系統代理已開啓、端口正在監聽、DSH 已完全退出並重啓、當前 profile 是 desktop、沒有被顯式代理環境變量覆蓋。
卸載命令:
dsh plugin --profile desktop remove dsh-system-proxy
執行後同樣需要重啓 DSH。
適用場景與注意¶
適合的場景比較明確:已經在 Windows 上配置了系統代理,希望 DSH 內部所有出網請求(模型調用、Web Search、HTTP MCP、pnpm、git)走同一條鏈路,同時不想開啓 TUN 模式的用戶。
需要留意的幾點:
- 插件覆蓋的是 Node.js/undici 請求和 DSH 派生的子進程,Electron 自身的登錄與更新流量不保證覆蓋。
- 插件以當前 DSH 進程的權限運行,安裝前建議先檢查源碼與許可證。插件是 MIT 許可證,倉庫公開。
- 條件覆蓋範圍有限:只支持 Windows 10/11,且要求 DSH 版本在
0.2.1-rc.2到0.3.0之前。 - 項目當前星標爲 1,屬於很新的插件,後續兼容性變化需要自己跟蹤。
結尾¶
dsh-system-proxy 的價值在於把「讓 DSH 走代理」這件事簡化成一次安裝加三步啓用,代價是不接管系統網絡、只覆蓋 DSH 內部的請求路徑。如果你只想複用現有的 Windows 系統代理,不想動路由,這個插件是目前比較直接的做法。
目錄頁:https://www.skillhub.cn/plugins/Bozheng-Li/dsh-system-proxy
倉庫:https://github.com/Bozheng-Li/dsh-system-proxy