Skip to content

如果你想在 CMD(命令提示符) 中设置代理,使其对 所有通过 CMD 执行的网络请求(如 curlpinggitwget 等)生效,而不是仅针对 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

适用场景

  • 临时让 curlgit clonepip 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 窗口):

  1. 打开系统环境变量设置
    • Win + R → 输入 sysdm.cpl高级环境变量
  2. 新建用户变量(仅当前用户生效)或 系统变量(所有用户生效):
    • 变量名: http_proxy
    • 变量值: http://127.0.0.1:7897
    • 变量名: https_proxy
    • 变量值: http://127.0.0.1:7897
  3. 重启 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),请替换端口号。如果仍有问题,可以告诉我你的具体使用场景(如需要代理 pingssh),我会提供更精准的方案! 🚀