CentOS系统Git忽略代理配置,克隆仓库报SSL_ERROR_SYSCALL错误
Git配置代理不生效问题原因及解决方法
常见原因
- 配置优先级冲突:Git配置遵循「本地仓库配置 > 全局用户配置 > 系统级配置」的优先级,若更高层级的配置存在清空代理、指定域名不走代理的规则,会覆盖你设置的全局代理
- 环境变量过滤:
no_proxy环境变量中配置了包含github.com的匹配规则,导致GitHub流量被排除在代理之外;若使用sudo执行Git命令,默认sudo会重置用户环境变量,使用root用户的配置而非当前用户的全局代理配置 - 旧版本Git缺陷:CentOS默认源提供的Git版本普遍较低(CentOS7默认仅1.8.x版本),存在代理规则解析失效的已知bug
- Cisco WSA适配问题:WSA默认会做HTTPS流量中间人解密,未导入WSA根证书的情况下,Git会因SSL校验失败中断连接,不会触发代理链路
解决步骤
- 首先校验当前生效的Git全量配置,排查优先级冲突:
git config --list --show-origin | grep proxy
如果输出中存在http.proxy=""、https.proxy=""或者针对github.com的独立空代理配置,执行对应删除命令即可,示例:
git config --unset --global http.proxy git config --unset --system https.proxy
- 检查代理环境变量配置:
echo $http_proxy $https_proxy $no_proxy
如果no_proxy中包含github相关规则,修改~/.bashrc或/etc/profile删除对应匹配项即可。如果使用sudo执行Git操作,可添加-E参数保留当前用户环境变量:
sudo -E git clone https://github.com/netbox-community/netbox.git
也可以直接为root用户配置全局代理:
sudo git config --global http.proxy http://webproxy.tld:8080 sudo git config --global https.proxy http://webproxy.tld:8080
- 针对Cisco WSA做适配配置:
临时测试可先关闭SSL校验验证链路:
git config --global http.sslVerify false
生产环境建议将WSA的根证书导入系统证书库后再配置Git信任系统证书:
git config --global http.sslCAInfo /etc/pki/tls/certs/ca-bundle.crt
也可强制指定GitHub流量走对应代理,优先级高于全局配置:
git config --global http."https://github.com/".proxy http://webproxy.tld:8080
- 版本过旧的情况下升级Git到最新稳定版即可修复已知代理缺陷。
- 验证链路是否正常:
curl -v https://github.com
如果curl可正常返回说明系统代理配置正常,执行带详细日志的克隆命令确认代理链路生效:
git clone -v https://github.com/netbox-community/netbox.git
内容的提问来源于stack exchange,提问作者TheDJToxica
相关产品推荐
相关产品推荐

