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。

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

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

小夜