【2025 完美解决】Failed connect to github.com:443; Connection timed out


前言

今天和往常一样,写完代码,准备 pushgithub 仓库中,结果发现一直卡在 push 页面的,如下所示:

[edison@vm-centos:~/edison]$ git push 
^C

后面排查了各种原因,发现原来是:

 GitHub 的 443/TCP 建连超时(curl、telnet 都卡住)

然后查找了网上所有的解决方法,大多数给的方法是:重新设置代理,或者关闭代码,或者去服务器官网开放 443 端口之类的…

但是我都试过了,还是不行,所以我这里推荐:改走 SSH over 443,该方法不依赖国内镜像,也不需要本机代理,成功率高。

1. 生成并上传 SSH Key

命令如下:

ssh-keygen -t ed25519 -C "your_email@example.com"

cat ~/.ssh/id_ed25519.pub

注意:ed25519 是一种 SSH 公钥算法,GitHub 官方文档推荐优先使用 Ed25519。

如下所示:

在这里插入图片描述

把公钥粘到 GitHubSettingsSSH and GPG keys,然后选择添加 SSH keys

在这里插入图片描述

2. 写 SSH 配置,强制走 ssh.github.com:443

命令如下:

mkdir -p ~/.ssh

chmod 700 ~/.ssh

cat > ~/.ssh/config <<'EOF'
Host github.com
  HostName ssh.github.com
  Port 443
  User git
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 30
  ServerAliveCountMax 6
EOF

chmod 600 ~/.ssh/config

如下所示:

在这里插入图片描述

3. 连通性自检(看是否能握手成功)

命令如下:

ssh -T git@github.com    # 首次会提示 host key,输入 yes

若看到 “Hi <username>! You've successfully authenticated…”,说明通了。

在这里插入图片描述

如果第 3 步卡住:

  • 先确认没有残留代理:env | grep -i proxy(有就 unset)。
unset http_proxy https_proxy all_proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
  • 测试 TCP:timeout 5 bash -c 'cat < /dev/null > /dev/tcp/ssh.github.com/443' && echo OK || echo FAIL
  • 输出 OK 表示 443 到 ssh.github.com 通,继续按下步骤操作。

4. 克隆

走 SSH 方式

git clone git@github.com:youername/yourRepository.git

克隆成功

在这里插入图片描述

5. 验证

此时我们在 git push,可以看到已经完美解决了

在这里插入图片描述

当出现错误消息“linux failed connect to github.com:443; connection timed out”,意味着Linux系统无法建立与GitHub服务器的连接。这可能是由于以下原因之一: 1. 网络连接问题:首先,您需要确保您的网络连接正常工作。您可以通过尝试访问其他网站来测试您的网络连接。如果您无法访问其他网站,则可能是您的网络连接出现问题。您可以尝试重新启动您的网络设备,例如路由器或调制解调器,或者联系您的网络提供商以解决问题。 2. 防火墙问题:Linux系统上可能启用了防火墙,它可能会阻止与GitHub服务器的连接。您可以尝试禁用防火墙或配置防火墙以允许与GitHub服务器的连接。具体的配置可能因您使用的Linux发行版而有所不同,您可以查阅相关的文档或使用适当的命令来执行此操作。 3. DNS问题:如果您的系统无法解析“github.com”的DNS记录,则无法建立与服务器的连接。您可以通过尝试访问具有已知IP地址的GitHub服务器来测试此问题。如果您可以通过IP地址连接,但无法通过域名连接,则可能是DNS服务器配置有问题。您可以尝试更改您的DNS设置或使用备用DNS服务器来解决此问题。 4. 代理配置问题:如果您在Linux系统上使用代理服务器进行网络连接,则可能是代理配置有问题。您可以检查您的代理设置并确保它们正确配置。 如果以上方法仍然无法解决问题,您可能需要寻求更高级的技术支持或与GitHub支持团队联系,以获取更多帮助和指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Albert Edison

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值