← Back to home@pengin69

configure-network-proxy

Windows git/Node layered proxy configuration skill for AI agents: probe endpoints, configure per layer, verify by measurement, print exact rollback

Stars
0
Language
PowerShell
Created
Oct 6, 2026
Updated
Oct 6, 2026

Introduction

configure-network-proxy

面向 Windows 的 git / Node 分层网络代理配置规程,供 AI 智能体自动加载使用(DSH skill)。 一个给 AI 智能体(以及人)用的 Windows 网络代理配置规程:把「git 连不上 GitHub / Node 下载超时 / 插件下载卡死」这类问题一次性诊断清楚并配好。

它同时以 DSH skill 的形式提供——放进 %DSH_HOME%\skills\ 后,智能体遇到相关任务会自动加载。

它解决什么问题

同一台机器上至少有三套互不相通的代理机制,很多人只配了其中一套,于是出现「浏览器能上、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 才读

本 skill 会分层次实测、按需配置,而不是让你反复试。

主要特性

  • 一次运行完成勘察 → 配置 → 对照验证 → 打印回退命令,不拆成多次读写全局配置
  • 优先尊重既有配置:代理端点优先采用环境变量/系统代理里已写明的,而不是「碰巧也在监听的其它端口」
  • 只写最小影响面:git 层使用 URL 级配置 http.https://github.com.proxy,不碰全局 http.proxy
  • 用测量说话:直连与代理各测一次比差值,VERIFIED 段通过才算成功——写进去了不等于生效
  • 精确回退:记录每个键的原值再还原,不会用「一律清空」破坏你原有的代理设置
  • 死端口技巧:把代理指向 127.0.0.1:9 来精确判定某个客户端到底有没有读代理配置

安装

# 复制整个目录到 DSH 的 skills 目录
Copy-Item -Recurse .\configure-network-proxy "$env:USERPROFILE\.dsh\skills\"

使用

# 先干跑,只看勘察与实测结果,不写任何配置
& 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
参数作用
-ProxyUrl显式指定代理端点;省略则自动勘察(环境变量 → 系统代理 → 代理客户端进程的监听端口)
-NoProxyExtra追加 NO_PROXY 白名单,只能放能直连的域名
-Layersgit / node / both(默认)/ none(只勘察)
-NodeTestAssetUrl用于测速的 Releases 资产 URL,建议换成一个你自己关注的大文件
-WhatIf只勘察与实测,不写任何配置

没有 pwsh 7 时用 powershell.exe;Windows 默认执行策略是 Restricted,-ExecutionPolicy Bypass 不能省。

关于 NO_PROXY 的判断准则

只有一条:这个域名离开代理还能不能活。

  • 国内可直连的模型 API、内网服务、自建中转站 → 加
  • 必须走代理才能访问的(OpenAI / Anthropic / Google 等)→ 绝对不要加

NO_PROXY 支持后缀匹配,写 deepseek.com 即可覆盖 api.deepseek.com。

输出说明

段落含义
PROBE勘察到的候选端点、选中哪个、为什么
BASELINE未配置代理时的实测(直连能否连、耗时、速度)
APPLIED实际写入的配置项(含作用域)
VERIFIED配置后的对照实测,逐项 PASS / FAIL
NEXT需要你做的事(通常是重启某个程序)
ROLLBACK精确回退命令
WARN不影响成功、但需要知晓的副作用

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

回退

& powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\rollback-network-proxy.ps1

原值备份在 %LOCALAPPDATA%\dsh-network-proxy\state.json,回退时逐项还原。

平台支持

目前是 Windows(PowerShell 5.1 兼容)。macOS / Linux 的等价做法见 SKILL.md 最后一节。

已知限制

  • Node 侧测试需要能找到 node(PATH 或 DSH runtime),找不到会跳过并明确告警
  • 不会替你判断「哪些域名该进 NO_PROXY」——这是需要决策的事,文档给了准则与实测方法
  • 默认测速资产是一个示例 GitHub Release 文件,建议用 -NodeTestAssetUrl 换成你自己的大文件,以验证是否会被下载器的硬超时卡住

License

MIT