配置 Git 全局代理是解决访问海外代码托管平台(如 GitHub)克隆速度慢的有效手段,适用于本地网络直连不稳定或超时的开发场景。
核心结论:通过 Git 配置指向本地代理服务的 HTTP 或 SOCKS5 代理,可以显著改善克隆远程仓库时的连接稳定性与速度。SSH 协议需单独配置 SSH 客户端代理。
- 适用场景:本地直连海外仓库频繁超时、下载速度极低。
- 前置准备:确认本地代理工具的监听协议(HTTP 或 SOCKS5)及端口号(常见为 7890 或 1080)。
- 验收标准:执行 git config 查看配置项,克隆仓库时观察进度条速度及是否超时。
HTTP/HTTPS 协议代理配置
以下命令假设你的本地代理监听在 127.0.0.1。请根据实际工具(如 Clash、V2Ray 等)的端口号替换命令中的端口。
# 配置全局 SOCKS5 代理(常见端口 1080)
git config `--global` http.proxy socks5://127.0.0.1:1080
git config `--global` https.proxy socks5://127.0.0.1:1080
# 配置全局 HTTP 代理(常见端口 7890)
git config `--global` http.proxy http://127.0.0.1:7890
git config `--global` https.proxy http://127.0.0.1:7890
# 仅针对 GitHub 域名配置代理(不影响国内仓库)
git config `--global` http.https://github.com.proxy socks5://127.0.0.1:1080
git config `--global` https.https://github.com.proxy socks5://127.0.0.1:1080
# 取消全局代理配置
git config `--global` `--unset` http.proxy
git config `--global` `--unset` https.proxy注意:Windows PowerShell 用户若遇到命令报错,请确保命令中无多余空格,或直接使用 Git Bash 执行。
SSH 协议代理配置
Git 的 http.proxy 配置仅对 HTTPS 协议生效。若使用 git@github.com 开头的 SSH 地址克隆,需修改 SSH 客户端配置。
编辑或创建 ~/.ssh/config 文件(Windows 位于 C:\Users\用户名\.ssh\config),加入以下内容:
Host github.com
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa依赖说明:上述配置依赖 nc (netcat) 命令。Windows 用户需确保 Git 安装目录下的 usr\bin 在环境变量中,或使用 connect.exe 替代 nc。若配置后 SSH 克隆仍失败,建议暂时改用 HTTPS 协议克隆。
代理认证与安全处理
若代理服务器需要用户名和密码,不建议直接将密码明文写入 Git 配置文件。
方案一:环境变量(推荐临时使用)
在终端中设置环境变量,Git 会自动读取。此方式重启终端后失效,适合临时任务。
# Linux/Mac
export ALL_PROXY=http://username:password@127.0.0.1:7890
# Windows PowerShell
$env:ALL_PROXY="http://username:password@127.0.0.1:7890"方案二:Git 凭证管理器
对于长期需求,建议配置 Git 凭证管理器存储认证信息,避免每次输入密码或明文存储。
git config `--global` credential.helper store验证与常见问题排查
1. 检查配置是否生效
执行以下命令查看当前 Git 是否记录了代理设置:
git config `--global` `--get` http.proxy
git config `--global` `--get` https.proxy若有输出内容,说明配置已写入。
2. 实际克隆测试
尝试克隆一个之前速度较慢的仓库。若速度有明显提升且不再频繁超时,说明代理生效。
3. 常见坑与排查
- 协议不匹配:确认代理工具支持 SOCKS5 还是 HTTP。若工具只提供 HTTP 端口,配置 socks5:// 前缀会连接失败。
- 端口动态变化:部分代理工具的端口号是动态分配的。若克隆突然变慢,检查工具界面端口号是否变化。
- SSL 证书报错:配置代理后若出现 SSL 证书验证错误,可尝试关闭 Git 的 SSL 验证(仅限内网测试环境):
git config `--global` http.sslVerify false。 - 忘记取消代理:在网络环境变化(如离开公司内网)后,若忘记取消代理配置,可能导致无法访问国内仓库。使用
`--unset`命令及时清理。