在 Windows 开发环境中,很多工具(如 Git、Scoop、npm、pip、curl、Docker CLI 等)都会自动读取系统环境变量中的代理配置。
相比只在浏览器里设置代理,环境变量代理是一种更通用、更稳定的方式。
本文将系统介绍:
Windows 支持通过环境变量向程序传递代理信息,最常见的是:
HTTP_PROXY
HTTPS_PROXY
当这些变量存在时,大多数命令行工具会自动使用代理访问网络。
📌 这是一种 系统级 / 用户级配置,不是浏览器专用。
[Environment]::SetEnvironmentVariable(
"HTTP_PROXY",
"http://127.0.0.1:1080",
"User"
)
[Environment]::SetEnvironmentVariable(
"HTTPS_PROXY",
"http://127.0.0.1:1080",
"User"
)
说明:
127.0.0.1:1080:本地代理地址(如 Clash / V2Ray / Shadowsocks)"User":只对当前用户生效(推荐)⚠️ 注意:
设置完成后,必须重新打开 PowerShell / CMD 才会生效。
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://127.0.0.1:1080", "Machine")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:1080", "Machine")
适合服务器或多人共用机器,一般个人开发环境不建议。
新开一个 PowerShell 窗口,执行:
$env:HTTP_PROXY
$env:HTTPS_PROXY
如果输出:
http://127.0.0.1:1080
说明代理已生效 ✅
sysdm.cpl你会看到:
| 变量名 | 值 |
|---|---|
| HTTP_PROXY | http://127.0.0.1:1080 |
| HTTPS_PROXY | http://127.0.0.1:1080 |
reg query HKCU\Environment
如果存在:
HTTP_PROXY REG_SZ http://127.0.0.1:1080
HTTPS_PROXY REG_SZ http://127.0.0.1:1080
说明已持久化写入系统。
git ls-remote https://github.com/ScoopInstaller/Extras.git
如果不再出现:
early EOFcurl 18invalid index-pack output说明代理生效 👍
curl https://github.com
[Environment]::SetEnvironmentVariable("HTTP_PROXY", $null, "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, "User")
然后:
sysdm.cpl$env:HTTP_PROXY
$env:HTTPS_PROXY
如果无输出,说明已清除。
SetEnvironmentVariable不会影响当前 PowerShell 会话
必须:
在 (base) 环境中,Conda 可能会:
👉 如果代理不生效,建议:
conda deactivate
再测试。
环境变量代理 ≠ Windows 设置里的:
设置 → 网络 → 代理
两者互不影响。
长期保留代理可能导致:
👉 不用时记得删除。
✅ 适合:
❌ 不适合:
Windows 环境变量代理,是开发环境里最通用、最稳定的代理方式之一。
会配、会查、会删,才能用得安心。