dsh-win-proxy:一条命令把 Windows 系统代理与 git / npm / pip 代理一起切好

前言

代理软件(比如 Clash)打开「系统代理」之后,浏览器能上网了,可你在 DSH 里让它拉代码、装依赖,却还是连不上。原因有两个:

  • DSH 自己有另一套上网方式,不看你系统里那个代理开关;
  • 它替你运行的 git、npm、pip,也各自记着自己的代理设置,同样不看系统代理。

结果就是代理明明是开着的,DSH 里却拉不动代码、装不上包。下面介绍的 mowendao/dsh-win-proxy(插件界面名 Proxy Switch)把这几处设置放进同一个开关:开,全开;关,全关。

这是什么

dsh-win-proxy 由 Mowendao 维护,MIT 许可,定位是 Windows 平台上的「代理开关」插件。它提供三个等价的入口——设置页、/proxy 命令、对话里直接说「开代理」——把 Windows 系统代理和 git / npm / pip 的代理设置一起打开或关掉。

需要注意它的边界:DSH 自己抓网页那一层不归这个插件管,插件只管系统代理和你本机的 git / npm / pip 配置。

核心能力

按 README 列出的能力整理,主要有这些:

  • 三个入口效果一致:设置页、/proxy 命令、对话触发,都不经过模型、不消耗 token;
  • 改完马上生效,浏览器这类程序不用重启;
  • 不动你手动加过的「不走代理」名单(默认留空即不覆盖);
  • 端口没监听时给出提醒,代理软件没启动时能一眼看出;
  • 只改自己那几项:git、npm、pip 的设置文件里其它内容原样保留;
  • 不需要管理员权限;
  • 不联网,只读写本机设置。

安装与启用

优先级最高的是插件市场。打开 DSH 的 设置 → 插件,搜索 Proxy Switch,点安装。

也可以从 GitHub 安装:

dsh plugin --profile web add github:Mowendao/dsh-win-proxy

或者从 npm 安装(已发布,当前版本 0.1.0,走预构建产物,不需要本地构建,也不用授权安装脚本):

dsh plugin --profile web add dsh-win-proxy

如果你的 profile 不叫 web,把 --profile web 换成你自己的:

dsh plugin --profile <profile> add github:Mowendao/dsh-win-proxy

DSH Desktop 的插件由应用自己安装:设置 → 插件 → 安装。桌面端的 profile 不能用命令管理,命令行会直接拒绝。

装好以后重启一次 DSH(或者刷新页面),设置页才会出现。「代理开关」页面要等安装完成后才加载,这是 README 里给出的排查方式。

卸载:

dsh plugin --profile web remove dsh-win-proxy

桌面端走 设置 → 插件 → 卸载。

典型用法

命令行入口不经过模型、不消耗 token:

/proxy on       # 打开:系统代理 + git + npm + pip
/proxy off      # 关掉
/proxy status   # 只看状态

对话里直接说「开代理」「关代理」「代理状态」,模型会调用插件里的工具。

设置页 设置 → 代理开关 里:顶部是总开关,一次切换全部目标;每一项显示当前状态,外加本机有哪些常见端口在监听;代理地址可以直接改,保存后重启也还在;也可以只勾选其中几项,例如只让 git 走代理。

它会改哪些设置

位置 打开代理时 关掉代理时
Windows 系统代理 打开并填上代理地址 只关掉开关,地址留着
git 记下代理地址 删掉
npm 在其设置文件里记下代理地址 删掉
pip 同上 删掉

关掉系统代理后地址留在 Windows 设置里、git / npm / pip 没有这种开关所以关掉时直接删掉,这些都来自 README 的解释。

配置文件对应的字段是:

- id: dsh-win-proxy
  name: 'dsh-win-proxy'
  config:
    proxyServer: "127.0.0.1:7890"
    targets: ["system", "git", "npm", "pip"]
设置项 默认 说明
代理地址 127.0.0.1:7890 本机代理软件监听地址,Clash 这类默认是 7890
不走代理的名单 留空 留空表示不动系统里已有的名单;填了才覆盖
管哪几项 全部 系统代理、git、npm、pip,可以只留其中几个
检查哪些端口 常见端口 看状态时顺便检查这些端口有没有程序在监听

适用场景与注意

适合 Windows 10 / 11 上用代理软件、又需要 DSH 跑 git / npm / pip 的人。要求是 Windows 10 / 11(「系统代理」这一项只支持 Windows;git / npm / pip 这几项在 Mac 和 Linux 上也能用)、DSH 0.2.x、不需要管理员权限。

两个使用上的注意点:

  • 开了代理浏览器却完全打不开网页时,多半是代理软件没启动或端口填错。打开「设置 → 代理开关」看「本地监听端口」,那里如果是空的,说明没有程序在监听你填的那个端口。
  • git / npm / pip 显示「不可用」,说明这台电脑上没装对应的程序,其它装了程序的项目不受影响。

安全方面,插件是第三方项目,遵循 MIT 许可。它以当前 DSH 进程的权限运行,不联网,安装前建议先看一下 GitHub 源码与许可证确认。

小结

dsh-win-proxy 解决的是一个很具体的问题:系统代理开了,DSH 里跑的命令却连不上。它的答案是一个开关同时管系统代理和 git / npm / pip 的代理配置,开就全开、关就全关。目录页在 https://www.skillhub.cn/plugins/Mowendao/dsh-win-proxy,源码在 https://github.com/Mowendao/dsh-win-proxy。

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

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

小夜