dsh-proxy-control:在运行中控制 DeepSeek Harness 的出站代理

前言

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

GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜