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