Git 无法访问 GitHub(Recv failure: Connection was reset)问题解决教程
Git 无法访问 GitHub(Recv failure: Connection was reset)问题解决教程
在使用 Git 访问 GitHub 仓库时,如果遇到以下报错:
fatal: unable to access '[https://github.com/xxx/xxx.git/](https://github.com/xxx/xxx.git/)': Recv failure: Connection was reset
说明本地 Git 无法通过 HTTPS 协议访问 GitHub。以下是排查与解决方法。
1. 浏览器能访问但 Git 不能
如果浏览器可以正常打开 https://github.com,但 Git 命令行失败,大概率是因为:
- 浏览器走了代理
- Git 命令行没有走代理
2. 为 Git 配置全局代理
如果你的代理运行在本地 127.0.0.1:7890
,可以这样设置:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
测试是否成功:
git ls-remote https://github.com/用户名/仓库名.git
如果能返回 HEAD
和 refs,说明连通了。
3. 只为 GitHub 配置代理
如果不想所有 Git 都走代理,可以只针对 GitHub:
git config --global http.https://github.com.proxy http://127.0.0.1:7890
4. 清除代理配置
如果代理不可用,Git 会报错。可以取消配置:
git config --global --unset http.proxy
git config --global --unset https.proxy
5. 改用 SSH 连接(推荐)
HTTPS 在某些网络环境下不稳定,SSH 更加可靠:
-
生成 SSH key(如果还没有):
ssh-keygen -t ed25519 -C "your_email@example.com"
-
将
~/.ssh/id_ed25519.pub
内容添加到 GitHub
👉 GitHub SSH key 设置 -
修改仓库远程地址:
git remote set-url origin git@github.com:用户名/仓库名.git
-
测试:
ssh -T git@github.com
成功会提示:
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.
6. 常用检查命令
-
查看代理配置:
git config --global -l
-
测试 GitHub 连接:
curl -v https://github.com
总结
- 能上 GitHub 但 Git 报错 → 代理问题
- 解决方案 1:给 Git 配置代理
- 解决方案 2:改用 SSH
推荐使用 SSH 方式,更加稳定,不需要额外代理配置。