前言¶
在 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