GitHub克隆拉取和推送代码时443超时问题解决方法

2025-06-29 15:36:09
1996字
11.1分钟
GitHub对中国大陆IP的访问进行了限制,国内想访问GitHub站点,需要科学上网,才能访问Github站点。有时候就算通过梯子,使用git命令克隆、推送、拉取GitHub仓库的代码也会报443连接超时错误.

在国内由于网络原因,在命令窗口能够Ping通github.com域名,但通过git命令操作github仓库代码时,无论是克隆,拉取、推送还是提交,经常会出现fatal: unable to access 'xxx': Failed to connect to github.com port 443: Timed out 禁止访问连接或者github连接超时异常,有时候即使开了梯子也没用,把VPN工具改成全局路由模式也不行。下面记录几种常见解决方法,彻底解决git命令连接github连接超时问题。

1 修改hosts文件

Hosts文件是系统中用于将网址域名与IP地址进行快速映射的数据库,在用户访问网站时优先被查询。这个没有扩展名的系统文件,虽然不起眼,却扮演着至关重要的角色。它类似于一个关联“数据库”,将众多常用的网址域名与对应的IP地址紧密相连。每当用户在浏览器中输入一个网址并尝试登录时,系统会首先自动在Hosts文件中寻找相应的IP地址。一旦找到,系统会迅速打开对应的网页;若未找到,则会自动将网址提交至DNS域名解析服务器进行IP地址的深入解析。

在解决 GitHub 在提交代码时出现 443 错误的问题时,修改 hosts 文件是一个可能的解决方案。这通常发生在 GitHub 的 IP 地址被错误地解析或者 DNS 解析出现问题的情况下,导致连接超时问题。通过修改hosts文件后,你可以绕过国内的访问限制,当尝试访问github及其相关域名时,系统将优先使用这些映射,从而可能解决网络连通性问题。以下是具体步骤:

1.1 查找GitHub的IP地址

首先,你需要找到 GitHub 的 IP 地址。可以通过运行以下命令来获取 GitHub 的 IP 地址:

ping github.com

或者,你可以使用以下命令获取更多 IP 地址:

nslookup github.com

1.2 手动编辑hosts文件

在不同操作系统中,Hosts文件的位置各有不同,便于管理和编辑。例如,在Windows系统中,它通常位于C:\Windows\System32\drivers\etc\hosts路径下;而在Android和iOS系统中,它则分别位于/etc/hosts和/private/etc/hosts等路径。对于Mac OS X系统,其位置则可能因版本不同而有所差异。

  • 对于Windows系统

1、以管理员权限身份,通过记事本打开C:\Windows\System32\drivers\etc\hosts文件。
2、在文件末尾添加以下行(替换 <github_ip> 为你从 ping 或 nslookup 命令中获取的 IP 地址):

 <github_ip> github.com

3、保存修改后的配置文件,并关闭文件。
4、为了确保更改生效,你可以清空 DNS 缓存,在终端刷新本地DNS缓存:

ipconfig /flushdns
  • 对于 macOS 或 Linux

1、打开终端。
2、使用文本编辑器打开 /etc/hosts 文件,例如使用命令:

 sudo vi /etc/hosts

3、在文件末尾添加以下行(同样替换 <github_ip>):

 <github_ip> github.com

4、保存修改后的配置文件,并关闭文件。
5、在 macOS 或 Linux 上,通常不需要手动清空 DNS 缓存,因为系统会自动处理。但如果你怀疑有缓存问题,可以尝试重启你的计算机。

温馨提示
1 修改hosts方法可能不太稳定,但至少在一定程度上能够解决问题。如果过一段时间后,发现修改hosts也无法连接,需要重新修改hosts文件中ip和github映射关系。
2 如果hosts文件中加入<github ip> github.com后发现还是连接不通,可以尝试加入以下IP地址和域名映射关系:
185.199.108.154   github.githubassets.com
140.82.113.22     central.github.com
185.199.108.133   desktop.githubusercontent.com
185.199.109.153   assets-cdn.github.com
185.199.110.133   camo.githubusercontent.com
185.199.108.133   github.map.fastly.net
151.101.201.194   github.global.ssl.fastly.net
140.82.116.3      gist.github.com
185.199.108.153   github.io
140.82.116.3      github.com
140.82.116.6      api.github.com
185.199.111.133   raw.githubusercontent.com
185.199.108.133   user-images.githubusercontent.com
185.199.108.133   favicons.githubusercontent.com
185.199.110.133   avatars5.githubusercontent.com
185.199.108.133   avatars4.githubusercontent.com
185.199.108.133   avatars3.githubusercontent.com
185.199.109.133   avatars2.githubusercontent.com
185.199.108.133   avatars1.githubusercontent.com
185.199.108.133   avatars0.githubusercontent.com
185.199.109.133   avatars.githubusercontent.com
140.82.116.9      codeload.github.com
52.217.135.153    github-cloud.s3.amazonaws.com
3.5.21.109        github-com.s3.amazonaws.com
3.5.29.177        github-production-release-asset-2e65be.s3.amazonaws.com
52.216.63.25      github-production-user-asset-6210df.s3.amazonaws.com
52.217.223.1      github-production-repository-file-5c1aeb.s3.amazonaws.com
185.199.110.153   githubstatus.com
140.82.112.17     github.community
185.199.108.133   media.githubusercontent.com
上面具体域名对应的映射ip,可以通过命令行ping的方式获取。

1.3 工具编辑hosts文件

对于windows系统可以借助第三方工具WinHostsManager进行修改hosts文件。‌ WinHostsManager 是一款功能强大的hosts文件管理工具,主要用于管理和修改hosts文件。‌

WinHostsManager的主要功能包括:

  1. 添加新的host项目‌: 用户可以轻松添加新的IP地址和域名映射。
  2. 保存修改‌: 将新的IP地址和域名直接加载到hosts文件中并保存
  3. 显示最高映射方案‌: 提供当前最高的映射方案,方便用户选择。
  4. 获取最快的主机IP编辑方式‌: 优化编辑过程,提高编辑效率。
  5. 支持重启主机‌: 编辑完成后,支持重启主机以应用更改
  6. 查看端口项目‌: 在列表上查看打开的端口项目。
  7. 建立过滤‌: 提供过滤功能,方便管理hosts文件‌。
  8. 支持禁用ip: 提供启用和禁用ip和域名映射关系功能。

此外,WinHostsManager还具有以下特点:

  • 操作简单‌: 用户无需知道hosts文件的保存位置,即可进行修改。
  • 节省时间‌: 软件会自动将内容写入hosts文件,节省了在C盘上查找hosts文件地址的时间。
  • 支持特殊地址访问‌: 帮助用户访问一些特殊地址。
  • 备份和恢复功能‌: 支持hosts文件的备份和恢复,确保数据安全‌。

2 配置GIT代理

通常我们访问GitHub站点都需要本地打开VPN工具才能访问,但即使打开VPN工具,打开了全局代理模式,git拉取或者提交代码依然报443连接错误。在Git中配置代理服务器是为了帮助你通过一个HTTP或HTTPS代理连接到GitHub外部网络资源,根据你的网络环境,你可能需要设置代理来绕过某些限制或提高访问速度,才能让git客户端通过VPN代理渠道访问github,否则git客户端不走VPN代理就会出现连接错误。

2.1 VPN代理IP和端口

打开本地VPN工具,查看设置页面http(s)代理IP和端口。以海豚湾为例,查看方法如下图: 或者查看电脑本地代理端口,查看方法如下图:

2.2 GIT本地代理配置

1. 全局代理配置

如果你希望对所有Git操作使用同一个代理服务器,你可以通过以下命令格式配置全局代理:

# 配置http代理
git config --global http.proxy http://proxy_address:port
# 配置https代理
git config --global https.proxy https://proxy_address:port

proxy_addressport替换为你的代理服务器的地址和端口。例如:您正在使用127.0.0.1的代理服务器和4780的端口,那么您需要输入以下命令:

# 配置http代理
git config --global http.proxy http://127.0.0.1:4780
# 配置https代理
git config --global https.proxy https://127.0.0.1:4780

2. 单个仓库代理配置

如果你只想为特定的Git仓库设置代理,而不是全局,你需要进入到本地具体代码仓库目录下,使用以下命令:

git config http.proxy http://proxy_address:port
git config https.proxy https://proxy_address:port

同样地,替换proxy_addressport为你的代理服务器信息。

3. 取消代理配置

如果你需要取消之前设置的代理配置,可以使用以下命令:

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

或者针对单个仓库:

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

4. 查看代理配置

如果你需要查询当前代理配置,可以使用以下命令:

# 查看http代理
git config --global --get  http.proxy
# 查看https代理
git config --global --get  https.proxy

或者针对单个仓库:

# 查看http代理
git config  --get  http.proxy
# 查看https代理
git config  --get  https.proxy

如果VPN代理IP和端口发生改变,需要重新配置git代码地址。

最后更新时间: 2026-03-12 10:40:16