Skip to content

Releases

v1.0.0

Choose a tag to compare

@pengin69 pengin69 released this 06 Oct 15:09

面向 Windows 的 git / Node 分层网络代理配置规程,供 AI 智能体自动加载使用(DSH skill)。

主要特性

  • 一条命令完成全流程:勘察代理端点 → 按层配置 → 对照验证 → 打印精确回退命令
  • 最小影响面:git 层只写 URL 级配置 http.https://<host>.proxy,不碰全局 http.proxy
  • 按层配置 Node:NODE_USE_ENV_PROXY / HTTPS_PROXY / HTTP_PROXY / NO_PROXY(用户级环境变量)
  • 精确回退:改动前逐项记录原值再还原,不会用「一律清空」破坏既有代理设置
  • 用测量说话:直连与代理各测一次比差值,VERIFIED 段通过才算成功 —— 写进去了不等于生效
  • 死端口技巧:把代理指向 127.0.0.1:9,精确判定某个客户端到底有没有读代理配置

它解决什么问题

同一台机器上至少有三套互不相通的代理机制,只配其中一套就会出现「浏览器能上、git 不能」「git 能 clone、插件下载却超时」这类怪现象:

机制 谁在用 读什么配置
git(libcurl) git clone/fetch/ls-remote、pnpm 的 github: 依赖 自己的 http.proxy / URL 级配置,或 http_proxy 环境变量
系统代理(WinINET) 浏览器、Electron 渲染进程 注册表 Internet Settings
Node fetch(undici) DSH 主进程、pnpm 的 URL 下载、各类 Node 工具 默认什么都不读;Node ≥ 24 需 NODE_USE_ENV_PROXY=1

安装

# 方式一:clone 到 DSH 的 skills 目录
git clone https://github.com/pengin69/configure-network-proxy "$env:USERPROFILE\.dsh\skills\configure-network-proxy"

# 方式二:复制已有目录
Copy-Item -Recurse .\configure-network-proxy "$env:USERPROFILE\.dsh\skills\"

快速开始(NO_PROXY 白名单要不要加,取决于那个 API「能不能直连」,以下以DS为例)

# 先干跑:只勘察与实测,不写任何配置
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\configure-network-proxy.ps1 -WhatIf

# 正式配置(把 deepseek.com 加入 NO_PROXY 白名单)
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\configure-network-proxy.ps1 -NoProxyExtra deepseek.com

# 需要时精确回退
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\rollback-network-proxy.ps1

环境要求

  • Windows(Windows PowerShell 5.1 或 PowerShell 7,脚本按 5.1 兼容语法编写)
  • 本机已有可用的本地代理客户端(Clash / Clash Verge / mihomo / v2ray / xray / sing-box / Surge 等)
  • Node 侧测试需要能找到 node(PATH 或 DSH runtime);缺失时会跳过并明确告警

文件说明

文件 说明
SKILL.md 规程主体:三层代理机制、NO_PROXY 判断准则、验证纪律、回退、非 Windows 等价做法
scripts/configure-network-proxy.ps1 勘察 → 配置 → 验证(含 -WhatIf 干跑)
scripts/rollback-network-proxy.ps1 读取状态文件逐项还原原值

退出码

0 成功 / 2 未发现可用代理(此时不会瞎写配置)/ 3 配置写入但验证失败 / 4 无可回退状态