🍎
powershell/cmd/bash中直接访问github/google是不行的,必须配置代哩,该文档解决的就是这个问题,分为临时和永久两种形式。
现象
- 浏览器能打开 GitHub / Google
hermes update、git fetch、git 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 update、git 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_PROXY 和 HTTPS_PROXY 两行,保存后重启 PowerShell。
CMD
以管理员身份打开 CMD,运行:
setx HTTP_PROXY ""
setx HTTPS_PROXY ""
重启 CMD 生效。
Git Bash
编辑 ~/.bashrc(或 ~/.bash_profile),删掉末尾的 export HTTP_PROXY 和 export 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。
常见端口参考
| 梯子工具 | 常见本地端口 |
|---|---|
| Clash | 7890 / 7891 |
| V2RayN | 10808 / 1080 |
| SS-R | 1080 |
如果换过端口,把上面命令里的 7890 换成对应端口即可。