Git 代理配置——克隆仓库时遇到 OpenSSL SSL_ERROR_SYSCALL 的解决方案
目录
- 引子:问题的发现
- 问题分析
- 解决方案:清除代理配置
- 总结与思考
引子:问题的发现
近日笔者在 Windows 系统中克隆一个 GitHub 项目时,遭遇了一个十分恼人的问题。当我尝试使用以下命令克隆仓库时:
git clone https://github.com/subframe7536/maple-font.git
终端却报出如下错误:
fatal: unable to access 'https://github.com/subframe7536/maple-font.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0
这一问题困扰了我许久,尤其是由于国内网络环境复杂,类似的问题层出不穷。经过多番搜索和测试,最终发现问题的根源以及解决方案,这篇文章将为大家详细介绍这一过程,希望对遇到类似问题的读者有所帮助。
问题分析
根据错误信息:
SSL_ERROR_SYSCALL
表明在使用 OpenSSL 的过程中,系统调用遇到了问题。errno 0
暗示错误的原因不明确,可能是网络环境异常或代理配置不当导致。
在检查了以下几点后,我逐步缩小了问题的范围:
- 网络连接:确保能够正常(或在代理开启情况下)访问
https://github.com
。 - Git 版本:确保 Git 已更新到最新版本。
- 代理配置:怀疑问题与 Git 的代理设置有关。
经过排查,我发现问题确实出在 Git 的代理配置上。
解决方案:清除代理配置
Git 允许为远程仓库配置代理,但如果配置不当或环境中没有可用的代理,就可能引发类似错误。通过以下命令可以清除与当前仓库相关的代理设置:
git config --global --unset-all remote.origin.proxy
而假如是(例如国内的)直连不通有代理的情况,可以通过
git config --global --add remote.origin.proxy "xxx"
命令添加代理。(其中 xxx
是代理的地址 / 端口)那假如忘记端口了呢?可以从软件中查询,而一个通用的“笨”办法是在 Chrome 浏览器中输入 chrome://net-export/
开启导出模式,随后开启代理随便访问一个网站(例如 Google)后关闭导出。打开自动保存的 chrome-net-export-log.json
文件,搜索 proxy
字段,后面跟着的地址就是你的代理地址。
总结与思考
根本原因:代理配置错误或不适用。
解决思路:通过清除错误的代理配置 / 添加代理配置让 Git 直接连接目标仓库。
这一案例再次提醒我们,在使用 Git 或其他工具时,如果遇到类似问题,务必要从以下几个方面入手:
- 检查网络环境是否正常。
- 确保工具版本更新。
- 仔细核对配置文件中的相关设置。
参考链接
- https://git-scm.com/docs/git-config
- https://stackoverflow.com/questions/22385392/git-ssl-error-unable-to-access
欢迎关注我的博客!
Find me on GitHub: GitHub profile page
Gitee account (under construction): Gitee site
GitLab account (under construction): GitLab site
Also find me on Luogu:Luogu profile
欢迎大家关注我,在项目上与我协作哦!