dsh-auto-proxy:为 DSH 自动接入本机 HTTP 代理

前言

在 DeepSeek Harness(DSH)里做联网抓取、调用 HTTP MCP 或走全局 dispatcher 的请求时,出站流量往往依赖本机已开的 Clash、系统代理等。常见做法是手动改环境变量、开 TUN 或全局模式,或在每次换端口后重新配置 DSH。这些方式步骤多,也容易和 DSH 自带的 NO_PROXY、本机绕过策略打架。

下面介绍社区插件 dsh-auto-proxy(维护者 murenyu1,分类:联网工具)。它在 DSH 内提供开关,自动发现本机 HTTP/混合代理端口,通过固定回环入口把运行中的 DSH 接到该代理上;关闭或卸载时可恢复开启前的代理策略。设计参考了 SuiSuiNian721 的 codex-connection-monitor 中「固定本地代理入口、动态切换上游」的思路,并针对 DSH 的插件生命周期与原生代理 API 做了适配。

这是什么

dsh-auto-proxy(npm 包名 dsh-plugin-auto-proxy)面向已在本机运行代理软件、又希望 DSH 出站走同一 HTTP/混合端口的开发者。插件不会启动代理软件,也不会代替代理规则选节点;只负责检测可用端口、校验连通性,并把 DSH 接到 127.0.0.1 上的固定入口,上游端口变化时只改入口的上游,无需为 DSH 单独开 TUN 或专用启动器。

资料中写明:当前 README 对应版本为 1.0.5,已验证宿主为 DeepSeek Harness 0.2.1-rc.2,运行环境 Node 22.21+;真实宿主联网验收在 Windows 完成,曾从 Clash Verge 配置自动识别混合端口 7897。仅提供 SOCKS 或 VPN、没有 HTTP/混合代理端口的软件无法直接接入。

核心功能

自动发现与校验

发现顺序大致为:优先读 Clash Verge 当前配置的 mixed-port / port,再读已启用的 Windows 当前用户系统代理及 Clash 内核监听端口。不会盲目扫描常用端口,也不把 SOCKS 或内核控制 API 当作 HTTP 代理。

每个候选需通过 HTTP CONNECT、TLS 证书验证和 GitHub HTTPS 响应检查。若 NO_PROXY 包含 * 或 GitHub,插件会报错提示,而不是误报已接入代理。

固定入口与 DSH 集成

DSH 连接仅监听 127.0.0.1 的固定 HTTP 代理入口;上游地址变更时,新请求走新上游,已建立连接仍可能沿用旧上游。代理不可用时拒绝新请求,不自动回退直连;显式 NO_PROXY 仍按原设置生效。

插件调用宿主 installProxyFromEnvironment 安装运行中策略,并通过 proxyRouteFor 核对页面抓取路由。资料记载:原生 web_fetch 和普通 Node fetch 已实测;与 DSH 全局 dispatcher 同路径的模型请求、HTTP MCP 会受策略影响,但未对收费模型或用户 MCP 做验收。

多入口与状态同步

1.0.5 起支持右侧边栏、底部工作台、对话框底部环境胶囊、插件管理配置卡片等多处操作;内部通过 ProxyStateHub 全局单例总线同步状态。在安装了 dsh-better-sidebar 时可从右侧「自动代理」标签进入;未安装时仍有原生侧栏选项卡。对话输入框下方可显示紧凑状态胶囊,点击可切换启停。

安全与边界

入口仅本机监听,限制并发,拒绝带 Origin 的浏览器请求;插件自身入口不会成为上游(自循环保护)。不修改 settings.json、系统代理、Clash 配置或证书策略;不解密 HTTPS,不记录请求正文。

若 DSH 启动时已存在代理环境变量,宿主 API 可能保留它们给子进程,插件会提示,不能保证 git、gh 或子进程 MCP 一定改用本插件入口。已运行的子进程、独立浏览器、工作流 worker 和 PTC 不会被强制接管。

安装与启用

推荐在 DSH 插件管理页通过「本地安装包」选择 dsh-plugin-auto-proxy-1.0.5.tgz(Release 附件或源码打包产物在 downloads/ 下的实际路径以你本地为准)。

CLI 管理时,在安装包所在目录执行(将 web 换为实际 profile):

dsh plugin --profile web add ./dsh-plugin-auto-proxy-1.0.5.tgz --ignore-scripts

官方桌面版的 profile 由应用管理,优先用应用内安装。安装命令只用于登记插件;开关与代理切换不需要重启 DSH(是否需宿主重新加载由 DSH 管理器决定)。

典型用法

  1. 正常启动本机代理软件和 DSH。
  2. 在右侧边栏、下侧工作台、底部胶囊或插件配置卡片中开启「自动代理」并保存。
  3. 状态同步为「已连接」后,界面拓扑可展示 DSH 入口 ➔ 本机代理 ➔ 外部网络 链路。
  4. 若自动发现不符合预期,在设置中手动填写地址,例如 http://127.0.0.1:7897,保存后立即生效。

关闭「开启自动代理」并保存会恢复插件开启前 DSH 的代理策略;卸载会清理入口并恢复策略。

适用场景与注意

适合:Windows 上已用 Clash Verge 等提供本机 HTTP/混合端口,希望 DSH 内 web_fetch、Node fetch 等与桌面代理一致,又不想开 TUN/全局模式的开发者。

注意:

  • 插件以当前 DSH 进程权限运行;安装前应自行查看源码与 MIT 许可证,确认可接受其行为范围。
  • 代理软件内规则若拒绝某站点,插件无法绕过。
  • 辅助发现(注册表、PowerShell、配置文件)失败时会保留已有候选并提示;无任何有效候选时不会假报已连接。
  • 社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek/幻方无官方从属关系;DSH 生态强调「一切皆插件」,本文事实以仓库 README 与发布说明为准。

结尾

dsh-auto-proxy 把「发现本机 HTTP 代理 → 固定回环入口 → DSH 原生代理 API」串成可开关的一条链路,并附带 GitHub HTTPS 检测与关闭恢复,适合在已开本地代理的前提下减少手工配环境变量的重复劳动。

  • 目录页:https://www.skillhub.cn/plugins/murenyu1/dsh-auto-proxy
  • 源码与说明:https://github.com/murenyu1/dsh-auto-proxy
羽毛球分组比赛记分
小程序二维码

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

Xiaoye