如果你想在 CMD(命令提示符) 中设置代理,使其对 所有通过 CMD 执行的网络请求(如 curl
、ping
、git
、wget
等)生效,而不是仅针对 Java 程序,可以使用以下方法:
方法 1:临时设置 CMD 代理(仅当前窗口有效)
直接在 CMD 中运行:
cmd
set http_proxy=http://127.0.0.1:7897
set https_proxy=http://127.0.0.1:7897
set http_proxy=http://127.0.0.1:7897
set https_proxy=http://127.0.0.1:7897
适用场景:
- 临时让
curl
、git clone
、pip install
等命令走代理。 - 关闭 CMD 后失效。
验证是否生效:
cmd
curl -v http://www.google.com # 测试代理是否生效
curl -v http://www.google.com # 测试代理是否生效
或
cmd
ping www.google.com # 检查是否能解析(代理不影响 ICMP,但能测 DNS)
ping www.google.com # 检查是否能解析(代理不影响 ICMP,但能测 DNS)
方法 2:永久设置 CMD 代理(需修改环境变量)
如果想 永久生效(对所有 CMD/PowerShell 窗口):
- 打开系统环境变量设置:
Win + R
→ 输入sysdm.cpl
→ 高级 → 环境变量。
- 新建用户变量(仅当前用户生效)或 系统变量(所有用户生效):
- 变量名:
http_proxy
- 变量值:
http://127.0.0.1:7897
- 变量名:
https_proxy
- 变量值:
http://127.0.0.1:7897
- 变量名:
- 重启 CMD 生效。
验证:
cmd
echo %http_proxy% # 检查变量是否生效
echo %http_proxy% # 检查变量是否生效
方法 3:使用 netsh
设置全局 WinHTTP 代理(影响所有程序)
如果想让 整个 Windows 系统(包括 CMD、浏览器等)走代理:
cmd
netsh winhttp set proxy 127.0.0.1:7897
netsh winhttp set proxy 127.0.0.1:7897
取消代理:
cmd
netsh winhttp reset proxy
netsh winhttp reset proxy
⚠️ 注意:这会修改系统级代理设置,可能影响浏览器和其他应用。
方法 4:针对特定工具单独设置代理
1. Git 代理
cmd
git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897
git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897
取消 Git 代理:
cmd
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
2. Pip(Python 包管理)代理
cmd
pip install --proxy=http://127.0.0.1:7897 package_name
pip install --proxy=http://127.0.0.1:7897 package_name
或永久设置:
cmd
set pip_proxy=http://127.0.0.1:7897
set pip_proxy=http://127.0.0.1:7897
3. Curl 代理
cmd
curl -x http://127.0.0.1:7897 https://www.google.com
curl -x http://127.0.0.1:7897 https://www.google.com
常见问题
Q1:代理设置后仍然无法访问?
- 检查代理软件(如 Clash/V2Ray)是否正常运行。
- 确认代理端口是否正确(Clash 默认
7890
,Charles 默认8888
)。 - 关闭防火墙或杀毒软件临时测试。
Q2:如何查看当前 CMD 代理?
cmd
set http_proxy
set https_proxy
set http_proxy
set https_proxy
或
cmd
netsh winhttp show proxy
netsh winhttp show proxy
Q3:如何让 CMD 不走代理?
cmd
set http_proxy=
set https_proxy=
set http_proxy=
set https_proxy=
或关闭代理软件。
总结
方法 | 作用范围 | 持久性 |
---|---|---|
set http_proxy | 当前 CMD 窗口 | 临时 |
环境变量 | 所有 CMD 窗口 | 永久 |
netsh winhttp | 整个 Windows 系统 | 永久 |
工具单独设置 | 仅特定工具(Git/Pip) | 按需配置 |
如果你的代理是 Clash/V2Ray(默认 7890
)或 Charles(默认 8888
),请替换端口号。如果仍有问题,可以告诉我你的具体使用场景(如需要代理 ping
或 ssh
),我会提供更精准的方案! 🚀