代理开关 · Proxy Switch
DSH 不会跟着你开的代理走。这个插件用一条命令,把 Windows 系统代理和 git / npm / pip 的代理设置一起打开或关掉。
在对话里说「开代理」,输入 /proxy on,或者打开 设置 → 代理开关。
这个插件解决什么问题
代理软件(比如 Clash)打开「系统代理」以后,浏览器能上网了。可你在 DSH 里让它帮你拉代码、装依赖,它还是连不上。
原因有两个:
- DSH 自己有另一套上网方式,不看你系统里那个代理开关
- 它替你运行的 git、npm、pip,也各自记着自己的代理设置,同样不看系统代理
于是就出现那种别扭的情况:代理明明是开着的,DSH 里就是拉不动代码、装不上包。
这个插件把这几处设置放进同一个开关:开,全开;关,全关。 DSH 里执行的命令马上就能用。 (DSH 自己抓网页那一层不归这个插件管。)
能做什么
- 三个入口,效果一样:设置页、
/proxy命令、对话里直接说「开代理」 - 马上生效:浏览器这类程序不用重启
- 不动你手动加过的不走代理名单
- 端口没开着时会提醒:开完代理上不了网,一眼看出是代理软件没启动
- 只改自己那几项:git、npm、pip 的设置文件里,其它内容原样保留
- 不用管理员权限
- 不联网:只读写这台电脑上的设置
安装
从插件市场安装(推荐)
打开 DSH 的 设置 → 插件,搜索 Proxy Switch,点安装。
从 GitHub 安装
dsh plugin --profile web add github:Mowendao/dsh-win-proxy
从 npm 安装
dsh plugin --profile web add dsh-win-proxy
已发布到 npm,当前版本
0.1.0。npm 安装走预构建产物,不需要本地构建,也不用授权安装脚本。
你的 profile 不叫 web
把 --profile web 换成你自己的:
dsh plugin --profile <profile> add github:Mowendao/dsh-win-proxy
在桌面端安装
DSH Desktop 的插件由应用自己安装:设置 → 插件 → 安装。 桌面端的 profile 不能用命令管理,命令行会直接拒绝。
装好以后重启一次 DSH(或者刷新页面),设置页才会出现。
使用
/proxy 命令
不经过模型、不消耗 token:
/proxy on # 打开:系统代理 + git + npm + pip
/proxy off # 关掉
/proxy status # 只看状态
对话
直接说「开代理」「关代理」「代理状态」就行,模型会调用插件里的工具。
设置页
设置 → 代理开关:
- 顶部总开关,一次切换全部目标
- 每一项的当前状态,外加本机有哪些常见端口在监听
- 代理地址可以直接改,保存后重启也还在
- 也可以只勾选其中几项,例如只让 git 走代理
配置
设置页里改的代理地址和「管哪几项」会存回插件配置,重启仍然生效。也可以直接改配置文件:
- 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 系统代理 | 打开,并填上代理地址(就是你平时在系统设置里点的那个开关) | 只关掉开关,地址留着 |
| git | 记下代理地址 | 删掉 |
| npm | 在它自己的设置文件里记下代理地址 | 删掉 |
| pip | 同上 | 删掉 |
关掉系统代理后地址还留着,是 Windows 自己的做法,下次打开不用重填。 git / npm / pip 没有这种开关,所以关掉时会把设置删掉,再打开时以插件里填的地址为准。
要求
| 项目 | 要求 |
|---|---|
| 系统 | Windows 10 / 11(「系统代理」这一项只支持 Windows) |
| DSH | 0.2.x |
| 权限 | 不用管理员 |
常见问题
开了代理,浏览器却完全打不开网页? 多半是代理软件没启动,或者端口填错了。打开「设置 → 代理开关」看一眼「本地监听端口」:那里是空的,就说明没有程序在监听你填的那个端口。
安装完,设置里找不到「代理开关」? 这个插件的页面要等安装完成后才加载。重启一次 DSH,或者刷新一下页面,它就会出现在设置的左侧列表里。
会覆盖我自己加的「不走代理」名单吗? 不会。那一项默认留空,插件不碰你已有的名单。
关掉后,之前填的代理地址为什么还在? 这是 Windows 自己的做法:关代理只是把开关拨到关,地址留着,下次打开不用重填。
为什么 git / npm / pip 显示「不可用」? 说明这台电脑上没装对应的程序。其它装了程序的项目不受影响。
支持 Mac 和 Linux 吗? 「系统代理」这一项只支持 Windows;git / npm / pip 这几项在其它系统上也能用。
开发
npm test # 配置编辑和设置页的自动测试,不会碰你真实的配置
lib/index.js 工具、命令、设置页后端
lib/wininet.js Windows 系统代理的读写
lib/app-proxy.js git / npm / pip
lib/netprobe.js 本机端口检查
client.js 设置页(纯浏览器代码,不用构建)
设置页通过插件自带的几个本机接口与它通信,写操作只接受本页面发来的请求。
卸载
dsh plugin --profile web remove dsh-win-proxy
桌面端:设置 → 插件 → 卸载。
No comments yet. Be the first to write one.