解决 Failed to connect to github.com port 443 的问题

报错信息:

1
2
3
$ git push -u origin main
fatal: unable to access 'https://github.com/username/repository-name/': Failed to connect to github.com port 443 after 21086 ms: Couldn't connect to server

无法连接到github.com端口443:无法连接到服务器。

出现的问题:无法将本地代码提交到 Github 仓库。

经过查找发现许多人在克隆时也会遇到这种情况。

原因可能为:网络连接问题或防火墙限制。

下面为解决方式:

网络连接问题

测试与GitHub的连接:打开终端或命令提示符,尝试使用以下命令对GitHub服务器进行ping测试:

1
ping github.com

如果ping命令失败或显示高延迟,则表示存在网络连接问题。可能需要联系网络管理员或互联网服务提供商寻求帮助。

避免网络连接问题的方式

1.临时禁用系统上的任何防火墙或防病毒软件,然后尝试再次推送。这些安全措施可能会干扰与GitHub的连接。

2.为GitHub存储库设置SSH身份验证,并使用SSH URL而不是HTTPS URL,可以绕过任何与端口或协议相关的问题。

如果以上设置均尝试过,且并非以上网络连接问题,而是由于国内网络无法连接Github时,解决方式就是配置访问GitHub的代理。

防火墙限制解决方式

电脑本地开启代理,同时为Git设置代理

电脑本地开启代理这里就不多赘述,可以自由选择容易上手使用的VPN。

1.查找电脑代理

打开电脑的设置,找到“网络和Internet”,找到代理,找到手动设置代理的地址。

image-20230904194342811

2.配置Git代理

打开 git bash,输入下列命令:

注意要将后面的地址修改为刚刚查找到的自己电脑的端口号

1
2
git config --global http.proxy http://127.0.0.1:1
git config --global https.proxy http://127.0.0.1:1

解释:

  • --glboal 选项指的是修改 Git 的全局配置文件~/.gitconfig,而非各个 Git 仓库里的配置文件.git/config
  • port为端口号。

配置好后查看代理是否配置成功,再次尝试克隆或上传。

3.查看代理

在git bash中输入下列命令

1
2
git config --global --get http.proxy
git config --global --get https.proxy

再次尝试:

1
2
git clone
git push -u origin main

其他

取消代理

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

直接编辑 Git 的配置文件

可以使用下列命令直接编辑 Git 的配置文件。

1
git config --global --edit

配置文件:

1
2
3
4
5
6
7
[http]

proxy = http://192.168.0.1:1080

[https]

proxy = http://192.168.0.1:1080

参考文章:如何为Git设置代理

下列内容摘自这篇文章:

编辑 ~/.ssh/config 文件,给文件加上如下对应内容.windows 的 ~ 路径一般是C:\Users\用户名,可在 git bash 中 输入 cd ~进入 ~目录,再用pwd命令显示当前路径.

1
2
3
4
5
6
7
8
9
# HTTP代理
Host github.com
User git
ProxyCommand connect -H 127.0.0.1:7890 %h %p

# SOCKS5代理
Host github.com
User git
ProxyCommand connect -S 127.0.0.1:7891 %h %p

解释:

  • Host 后面 接的 github.com 是指定要走代理的仓库域名。
  • 在 ProxyCommand 中,Windows 用户用的是 connect。
  • -H 选项的意思是 HTTP 代理
  • -S 选项指的就是 socks5 代理
  • 在调用 ProxyCommand 时,%h 和 %p 将会被自动替换为目标主机名和 SSH 命令指定的端口( %h 和 %p 不要修改,保留原样即可)。

ssh 其他配置可以看这篇文章:如何在一个系统上同时使用 gitee 和 github

参考文章

设置代理解决github被墙

Git 的代理配置

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

You Found Me.

支付宝
微信