您现在的位置是:首页 >技术交流 >git clone报错fatal: unable to access Failed to connect to github.com port 443: Timed out网站首页技术交流

git clone报错fatal: unable to access Failed to connect to github.com port 443: Timed out

喜喜, 2025-03-23 12:01:02
简介git clone报错fatal: unable to access Failed to connect to github.com port 443: Timed out

—— 确保本地能正常访问github ——

一、Git 未使用 正确 的网络路由
○ 测试 Git 是否能通过代理软件 专属路由流量,并且正确访问github:
bash
curl -v https://github.com

如果 curl 能正常访问,但 git clone 不行,可能是 Git 的代理配置问题。

二、手动配置 Git 使用代理
即使软件 开启了系统代理,Git 可能不会自动使用它。你需要手动为 Git 配置代理。

配置步骤:
在终端中运行以下命令,设置 HTTP 和 HTTPS 代理:
bash

git config --global http.proxy http://127.0.0.1:10080  
git config --global https.proxy http://127.0.0.1:10080 

测试代理是否生效:
bash

git ls-remote https://github.com/elastic/eui.git 

如果输出了仓库的远程信息,说明代理配置成功。

如果代理配置成功后可以正常克隆代码:

bash

git clone https://github.com/仓库地址.git  

如果需要取消代理配置(例如切换到其他网络环境时、或者本身环境下已经可以直接访问github,不需要配置),可以运行以下命令:

bash

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

如果任不起作用,可以尝试下载zip包后手动使用git管理,或者使用SSH拉取

原理:
1. 什么是代理
代理(Proxy)是一种中间服务器,充当客户端(你的电脑)和目标服务器(如 GitHub)之间的中介。通过代理,客户端的请求会先发送到代理服务器,再由代理服务器转发到目标服务器。目标服务器的响应也会通过代理服务器返回给客户端。
在你的情况下:
● 你的 代理软件在本地开启了一个代理服务(监听 127.0.0.1:10080)。
● Git 默认不会自动使用系统代理,因此需要手动配置代理地址。

2. 为什么需要配置 Git 的代理?
Git 默认直接通过系统的网络接口访问目标服务器(如 GitHub)。即使你的 VPN 已经开启了系统代理,Git 并不会自动遵循系统代理设置。这是因为:

  • Git 是一个独立的命令行工具,它不会像浏览器那样自动使用系统代理。
  • 如果没有配置代理,Git 的网络请求会绕过 代理软件,直接通过本地网络访问 GitHub。这可能导致连接超时或被阻断(例如在中国大陆访问GitHub 时)。

通过手动配置 http.proxy 和 https.proxy,你告诉 Git:

  • 所有 HTTP 和 HTTPS 请求都需要通过 127.0.0.1:10080(VPN 的代理端口)发送。
  • 这样,Git 的网络请求就会被 代理软件 代理转发,从而成功连接到 GitHub。

另外
为什么浏览器可以正常访问,而 Git 不行?
浏览器通常会自动使用系统代理,而 Git 不会。以下是两者的区别:

  • 浏览器:
    ○ 浏览器会自动检测系统代理设置(例如通过 代理软件 软件设置的代理)。
    ○ 因此,即使没有手动配置,浏览器也能通过 代理软件 访问 GitHub。
  • Git:
    ○Git 不会自动使用系统代理。
    ○ 如果没有手动配置代理,Git 的网络请求会直接通过本地网络发送,而不是通过 代理软件。这可能导致连接超时或被阻断
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。