dsh-proxy:DeepSeek Harness 运行时可切换代理插件

前言

在 DeepSeek Harness (DSH) 中,代理配置通常涉及修改配置文件并重启进程。dsh-proxy 插件解决了这个问题,它接管全局的 fetch 调用,允许通过 Web 设置或配置文件热重载 HTTP(S)/SOCKS5 路由,无需重启 DSH。

插件介绍

tr1v3r/dsh-proxy 是一个 DSH 插件,用于路由所有进程内出站请求(LLM 提供商、web_search、streamable-http MCP)。
- 维护者:tr1v3r
- 类别:联网工具
- 许可证:MIT

核心功能

  • 全局路由:拦截所有进程内出站请求,通过 HTTP(S) CONNECT 或 SOCKS5 代理转发。
  • 运行时切换:无需重启,即可切换直连、跟随系统或手动代理模式。
  • 协议支持:支持 HTTP(S) 和 SOCKS5。
  • Bypass 规则:支持 noProxy 规则(undici 风格匹配器)。
  • 子进程环境变量:支持将代理环境变量导出给子进程(exportEnv: true)。
  • 系统代理检测:支持 macOS 系统设置代理检测(系统模式)。
  • 回环绕过:默认跳过本地回环地址。

安装与启用

插件通过 npm 安装。在目标配置文件目录下执行以下命令:

dsh plugin --profile <name> install --no-frozen-lockfile

配置与使用

通过 Web 设置

  1. 打开 DSH Web 界面。
  2. 进入 Settings → General → Network proxy。
  3. 从下拉菜单选择模式:Direct、Follow system 或 Manual。
  4. 在 Manual 模式下输入代理地址和 Bypass 列表。文本字段在失焦时保存。

通过配置文件

编辑 ~/.config/dsh/profiles/<name>/cordis.patch.yml。

- id: dsh-proxy
  config:
    mode: manual                       # direct | system | manual
    proxy: socks5://127.0.0.1:1080     # http://…, https://…, socks5://…
    noProxy:                           # optional bypass list
      - localhost
      - .internal.example
      - registry.corp:443
    bypassLoopback: true               # true: loopback stays direct
    exportEnv: true                    # set HTTP(S)_PROXY for children

运行时切换

  • Web 设置:在侧边栏底部(设置上方)使用图标按钮切换模式。
  • 热重载:修改 cordis.patch.yml 后,配置会自动生效,无需重启。

注意事项

  • 凭证安全:嵌入用户名/密码的代理 URL 以明文存储在磁盘上,仅受文件权限保护。建议在本地使用无认证代理。
  • 环境变量传播:凭证会作为 HTTP(S)_PROXY 环境变量传播到 DSH 进程。子进程(如 stdio MCP 服务器)可读取这些变量。
  • 请求中断:如果切换代理后,某个请求仍在运行约 30 秒,该请求将被中断。
  • 系统模式限制:系统模式目前仅支持 macOS,不支持 Windows 注册表、Linux 桌面或 PAC。
  • URL 有效性:无效的 URL 不会被保存。

总结

dsh-proxy 提供了 DSH 全局出站流量的代理控制,支持热重载和多种模式。适合需要在开发或运行时动态切换网络环境的场景。

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

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

小夜