前言¶
DeepSeek Harness(DSH)在桌面端启动时,如果环境变量中没有 HTTP_PROXY 或 HTTPS_PROXY,所有通过 Node 运行时的出站请求(包括 web_fetch、HTTP MCP 传输、账号调用)都会直连网络。在本地使用了 Clash 或 mihomo 等代理工具且开启了 fake-IP 模式时,web_fetch 在发送请求前就会拒绝解析到非公网 IP 的域名,导致请求无法发出。dsh-outbound-proxy 插件通过在 Harness Host 进程中安装代理策略,让出站流量统一走本机 HTTP 代理,从而绕过 fake-IP 限制,同时将策略通过环境变量暴露给子进程。
是什么¶
dsh-outbound-proxy 是一个 DeepSeek Harness Host 插件,由 Dax233 维护。它利用 @deepseek-ai/dsh-http-proxy 的 installProxyFromEnvironment 函数,替换 Undici 的全局调度器,让 Harness 的出站请求通过本地 HTTP(S) 代理转发。插件通过 cordis.patch.yml 将代理策略注入到 Harness 的运行时配置中,同时将代理 URL 暴露为 HTTP_PROXY、HTTPS_PROXY、NO_PROXY 环境变量,供子进程使用。
核心功能¶
- 安装代理策略:插件在 Harness Host 进程中安装代理策略,替换 Undici 的全局调度器。
- 环境变量暴露:将代理 URL 暴露为
HTTP_PROXY、HTTPS_PROXY、NO_PROXY环境变量,供子进程使用。 - 端口跟随环境:代理端口优先级为:插件行配置的
proxyUrl> 启动环境中的https_proxy/HTTPS_PROXY/http_proxy/HTTP_PROXY> 默认的http://127.0.0.1:7890(Clash for Windows 默认端口)。 - Loopback 直连:回环地址(
127.0.0.1、localhost)的流量始终直连,不走代理。 - noProxy 支持:可以在
noProxy配置中指定域名后缀,这些 Host 保持直连,不会因停止代理而中断会话。
安装与启用¶
在 DSH Desktop 中执行以下命令安装插件:
dsh plugin --profile desktop add github:Dax233/dsh-outbound-proxy
安装后重启 DSH Desktop,插件会自动加载。默认代理为 http://127.0.0.1:7890,但端口会根据实际代理软件的端口动态解析。
典型用法¶
- 本地代理软件端口配置:Clash for Windows 默认使用 7890 端口,Clash Verge 默认使用 7897 端口,其他代理软件端口可能不同。
- 通过环境变量设置端口:在
~/.dsh/.env文件中配置https_proxy或http_proxy,例如:
https_proxy=http://127.0.0.1:7897
- 通过插件行配置覆盖:在 DSH 插件配置行中添加
proxyUrl字段,例如:
proxyUrl=http://127.0.0.1:7897
- 配置 noProxy:在
noProxy字段中指定需要直连的域名后缀,例如:
noProxy=deepseek.com,opencode.ai
适用场景与注意¶
该插件适合在本地已经运行 Clash、mihomo 等代理软件,且 Harness 需要通过代理访问外网场景。由于插件以 Harness Host 进程的权限运行,安装前建议查看源码与许可证(MIT)。Loopback 通信始终直连,noProxy 中指定的 Host(如模型提供商、账号 API)也会保持直连,确保停止代理不会导致会话中断。
小结¶
dsh-outbound-proxy 通过在 Harness Host 进程中安装代理策略,解决了桌面端 Harness 启动环境缺少代理配置、fake-IP 导致请求被拒绝的问题。它支持端口跟随环境变量,并提供 noProxy 配置,适合需要统一管理出站流量的智能体开发者。