方式一:
「设置」>「网络和 Internet」>「代理」
适用于依赖系统设置的所有应用
方式二:
通过环境变量设置 http_proxy
适用于依赖环境变量的应用
在 Windows 系统中,不同的应用程序处理代理的方式各不相同,一些依赖系统代理设置,而另一些依赖环境变量。以下是它们的主要区别:
1. 依赖系统代理设置的应用
这些应用程序使用 Windows 系统级别的代理配置,通常可以通过「设置」>「网络和 Internet」>「代理」来配置。
- 浏览器:
- Microsoft Edge
- Google Chrome(默认遵循系统代理设置)
- Internet Explorer
- Windows 更新:Windows 的自动更新功能会遵循系统代理设置。
- 一些桌面应用程序:例如,某些使用 Windows API 处理网络请求的应用程序,如 OneDrive、Outlook、Windows Mail。
- Microsoft Store 应用:所有通过 Microsoft Store 安装的 UWP 应用一般都会遵循系统的代理设置。
- 网络管理工具:如 VPN 软件或网络诊断工具,有些会优先使用系统代理。
2. 依赖环境变量的应用
这些应用程序通常是命令行工具或开发者工具,它们通常不依赖系统代理设置,而是依赖环境变量 http_proxy
、https_proxy
等。
- 命令行工具:
curl
:依赖http_proxy
和https_proxy
环境变量。wget
:同样依赖环境变量。git
:除非通过git config
显式设置,否则依赖环境变量。npm
、yarn
:用于 Node.js 包管理,依赖环境变量,或者可以通过配置文件显式设置代理。
- 编程语言工具:
- Python 的
pip
:可以通过环境变量来设置代理。 - Java 的 Maven 和 Gradle:通常可以通过
-Dhttp.proxyHost
或依赖环境变量来设置代理。 - Docker:Docker 客户端和守护进程依赖
http_proxy
和https_proxy
环境变量。
- Python 的
- 开发工具:
- IntelliJ IDEA、Visual Studio Code:这些 IDE 可以在配置中设置代理,或者依赖环境变量。
sdkman
:依赖环境变量来设置代理。
3. 可以同时依赖两者的应用
有些应用程序同时支持系统代理设置和环境变量代理设置,具体取决于配置。
- Mozilla Firefox:虽然它可以使用系统代理,但也可以在设置中单独配置代理,不依赖系统设置。
- Google Chrome:默认使用系统代理,但也可以通过命令行参数或扩展自定义代理。
- Java 应用程序:许多 Java 应用支持通过 JVM 选项(如
-Dhttp.proxyHost
)指定代理,同时也可能遵循系统设置。
总结
- 系统代理:主要影响桌面应用程序、浏览器以及某些 Windows 系统服务。
- 环境变量:主要影响命令行工具、开发工具、编程语言的包管理工具等。
如果你主要使用命令行工具,设置环境变量往往更有效;而对于桌面应用和浏览器,配置系统代理则更为适用。