Git 克隆问题排查与解决方案

问题 1:克隆时无法连接 GitHub

复制代码
Cloning into 'OpenManus'... fatal: unable to access 'https://github.com/mannaandpoem/OpenManus.git/': Failed to connect to github.com port 443 after 21074 ms: Could not connect to server 克隆项目时

错误表明无法连接到 github.com 的 443 端口(HTTPS),超时约 21 秒。可能原因包括网络问题、防火墙限制或 GitHub 服务器状态。建议:

  1. 检查网络连接,尝试访问 https://github.com

  2. 验证仓库地址是否正确。

  3. 检查 GitHub 状态:GitHub Status

  4. 测试其他网络或使用 SSH:

    bash

    收起自动换行复制

    git clone [email protected]:mannaandpoem/OpenManus.git

  5. 调整 Git 配置或使用 curl -v 调试。


问题 2:如何为 Git 配置代理

复制代码
我使用了代理,git应该如何配置代理

Git 支持通过 http.proxy 和 https.proxy 配置代理。步骤如下:

  1. 确认代理信息 :例如 http://proxy.example.com:8080

  2. 全局配置

    git config --global http.proxy http://proxy.example.com:8080 git config --global https.proxy http://proxy.example.com:8080

    • 带用户名密码:

      git config --global http.proxy http://user:[email protected]:8080

    • SOCKS5 代理:

      git config --global http.proxy socks5://proxy.example.com:1080

  3. 单次命令

    git clone -c http.proxy=http://proxy.example.com:8080 https://github.com/mannaandpoem/OpenManus.git

  4. 环境变量

    export http_proxy=http://proxy.example.com:8080 export https_proxy=http://proxy.example.com:8080

  5. 验证

    git config --global --get http.proxy


问题 3:不设置代理会怎样

复制代码
如果不设置代理

不设置代理时,Git 直接通过本地网络连接 github.com

  • 如果网络无限制,克隆应成功。

  • 如果网络屏蔽 GitHub(常见于受限地区),会失败。 建议:

  1. 测试网络:ping github.com 和 curl https://github.com

  2. 清除代理:

    git config --global --unset http.proxy git config --global --unset https.proxy

  3. 尝试 SSH:

    git clone [email protected]:mannaandpoem/OpenManus.git

  4. 修改 hosts 文件(临时绕过):

    140.82.121.3 github.com


问题 4:再次尝试克隆仍失败

复制代码
$ git clone https://github.com/mannaandpoem/OpenManus.git Cloning into 'OpenManus'... fatal: unable to access 'https://github.com/mannaandpoem/OpenManus.git/': Failed to connect to github.com port 443 after 21059 ms: Could not connect to server 我都没有设置代理

确认未设置代理,但仍无法连接 443 端口。建议:

  1. 测试网络:

    ping github.com curl -v https://github.com

  2. 检查代理残留:

    git config --global --get http.proxy

  3. 使用 SSH(需配置密钥):

    ssh-keygen -t rsa -b 4096 -C "你的邮箱" git clone [email protected]:mannaandpoem/OpenManus.git

  4. 切换网络测试。


问题 5:Ping 测试结果

复制代码
ping github.com 正在 Ping github.com [20.205.243.166] 具有 32 字节的数据: 来自 20.205.243.166 的回复: 字节=32 时间=185ms TTL=112 来自 20.205.243.166 的回复: 字节=32 时间=101ms TTL=112 来自 20.205.243.166 的回复: 字节=32 时间=138ms TTL=112 来自 20.205.243.166 的回复: 字节=32 时间=164ms TTL=112 20.205.243.166 的 Ping 统计信息:    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位):    最短 = 101ms,最长 = 185ms,平均 = 147ms

Ping 成功,说明网络可达 20.205.243.166,但 HTTPS(443 端口)可能被阻断。建议:

  1. 测试 HTTPS:

    curl -v https://github.com

  2. 检查本地防火墙。

  3. 再次尝试克隆或使用 SSH。


问题 6:Curl 测试结果

复制代码
curl -v https://github.com * Host github.com:443 was resolved. * IPv6: (none) * IPv4: 20.205.243.166 *   Trying 20.205.243.166:443... * connect to 20.205.243.166 port 443 from 0.0.0.0 port 1113 failed: Timed out * Failed to connect to github.com port 443 after 21115 ms: Could not connect to server * closing connection #0 curl: (28) Failed to connect to github.com port 443 after 21115 ms: Could not connect to server是不是

域名解析成功,但 443 端口连接超时,确认网络屏蔽 HTTPS 流量。解决方案:

  1. 使用代理

    git config --global http.proxy http://127.0.0.1:1111 git config --global https.proxy http://127.0.0.1:111 git clone https://github.com/mannaandpoem/OpenManus.git

  2. 使用 SSH

    git clone [email protected]:mannaandpoem/OpenManus.git

  3. 切换网络。

  4. 修改 hosts(效果有限)。


总结

用户无法直接通过 HTTPS 克隆 GitHub 仓库,原因是网络屏蔽了 443 端口流量。Ping 成功但 HTTPS 失败表明限制针对特定端口。推荐解决方案:

  • 配置代理(需提供代理信息)。

  • 使用 SSH(需配置密钥)。

  • 切换无限制网络。

相关推荐
司徒小夜5 小时前
处理git没做修改,但是文件显示变更的情况
git
m0_749317526 小时前
vscode里如何用git
ide·git·vscode
Hello.Reader6 小时前
Git 安装全攻略Linux、macOS、Windows 与源码编译
linux·git·macos
王景程7 小时前
SELinux是什么以及如何编写SELinux策略
git·github
Chuncheng's blog7 小时前
如何基于Mihomo Party http端口配置git与bash命令行代理
git·http·bash
Tom Boom8 小时前
Git常用命令完全指南:从入门到精通
大数据·git·elasticsearch·docker·自动化测试框架
不爱学英文的码字机器9 小时前
[Git] 文件删除
git
DZSpace10 小时前
git stash命令用法
git
Vowwwwwww10 小时前
GIT历史存在大文件的解决办法
前端·git·后端
@BreCaspian11 小时前
Git 推送失败解决教程——error: failed to push some refs to
大数据·git·elasticsearch