PowerShell、CMD、Git Bash代理设置指南(443)

10 阅读2分钟

🍎powershell/cmd/bash中直接访问github/google是不行的,必须配置代哩,该文档解决的就是这个问题,分为临时和永久两种形式。


现象

  • 浏览器能打开 GitHub / Google
  • hermes updategit fetchgit clone 失败,提示连接超时
  • Test-NetConnection github.com -Port 443 显示 False

原因

终端(PowerShell、CMD、Git Bash 等)默认不读取 Windows 系统代理设置,导致终端里的 git、curl、python 等命令走不了蹄子。


临时设置(仅当前窗口有效)

PowerShell 7

$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"

CMD

set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890

Git Bash

export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890

两种代理配置的区别:

  • export HTTP_PROXY=...环境变量方式,给整个终端设代哩,所有工具(git、curl、python、npm)都走代哩
  • git config --global http.proxy ...Git 自身配置,只影响 git 这一个工具,且优先级高于环境变量

平时推荐用环境变量方式,一劳永逸。除非你想让 git 用和别的工具不同的代理,才需要单独配 git config

设置后,当前终端里执行 hermes updategit clone 等就能走代哩了。
关掉窗口或重启终端后失效。

注:HTTP_PROXY 是通用环境变量,所有命令行工具(git、curl、python、node 等)都能识别,只是不同终端的语法不同。


永久设置(每次开终端自动生效)

PowerShell 7

notepad $PROFILE

如果提示文件不存在,先运行:

New-Item -Path $PROFILE -Type File -Force
notepad $PROFILE

在打开的记事本里加上两行,保存后重启 PowerShell:

$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"

CMD

管理员身份打开 CMD,运行:

setx HTTP_PROXY http://127.0.0.1:7890
setx HTTPS_PROXY http://127.0.0.1:7890

重启 CMD 生效。

Git Bash

编辑 ~/.bashrc(或 ~/.bash_profile),末尾加上:

export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890

保存后重启 Git Bash 生效。


取消永久设置

PowerShell 7

notepad $PROFILE

删掉里面的 HTTP_PROXYHTTPS_PROXY 两行,保存后重启 PowerShell。

CMD

管理员身份打开 CMD,运行:

setx HTTP_PROXY ""
setx HTTPS_PROXY ""

重启 CMD 生效。

Git Bash

编辑 ~/.bashrc(或 ~/.bash_profile),删掉末尾的 export HTTP_PROXYexport HTTPS_PROXY 两行,保存后重启 Git Bash 生效。


查看当前代理状态

终端环境变量(影响所有工具:git、curl、python、node 等)

# PowerShell / CMD
echo $env:HTTP_PROXY
echo $env:HTTPS_PROXY

# Git Bash
echo $HTTP_PROXY
echo $HTTPS_PROXY

Git 自身代理配置(只影响 git,优先级高于环境变量)

# 查看(所有终端通用)
git config --global http.proxy
git config --global https.proxy

# 取消(所有终端通用)
git config --global --unset http.proxy
git config --global --unset https.proxy

注意:上面是两套独立的代理配置HTTP_PROXY 环境变量影响所有命令行工具;git config --global http.proxy 只影响 git 本身,且优先级更高。通常只需要配环境变量即可,不需要再配 git config。


常见端口参考

梯子工具常见本地端口
Clash7890 / 7891
V2RayN10808 / 1080
SS-R1080

如果换过端口,把上面命令里的 7890 换成对应端口即可。