GitHub 更新代码出现 Failed to connect to github.com port 443: Timed out 的解决办法

894 阅读3分钟

GitHub 更新代码出现 Failed to connect to github.com port 443: Timed out 的解决办法

你是不是在访问全球最大的【学习网站】(GitHub)也遇到过以下情况:

  • 1.突然电脑无法访问 github 了,无论你重启电脑,重置网络,尝试了各种方式都无法正常访问。

  • 2.经过各种研究尝试,发现可以访问到 GitHub了。

  • 3.当你开心的在命令行上敲上你熟悉的 git pull、push 等命令进行访问 github 的远程仓库的时候,命令行却显示【Failed to connect to github.com port 443: Operation timed out】

身为一个开发人员,这些错误自然是难不到你的!然后你疯狂的搜索,然后得到的是为 git 设置代理,或取消 github 的全局代理

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

 # 取消github的全局代理

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

当你以为能快速的解决此问题时,命令行却再一次出现错误。

如果你也遇到了这些情况,按照以下操作执行,你可以解决近 90%的问题。

解决方式

1. 打开如下网址,复制其中的 IP 地址

将页面中的 IP Address 复制出来,如上图红色区域处的地址。

2. 打开另外一个网址,复制其中的 IP 地址

将页面中的 IP Address 复制出来,如上图红色区域处的地址。

3. 打开第三个网址,将其中的几个 IP 地址复制下来

将页面中的这几个 IP 地址复制出来,如上图红色区域处的这几个地址。

4. 修改本机的 host 文件,保存即可

方式一(推荐使用)

  • 推荐使用 SwitchHosts,它是一个管理、切换多个 hosts 方案的工具。

  • SwitchHosts 官网地址

  • 使用 SwitchHosts 修改 host 操作流程

    • 1.安装 SwitchHosts 后,右键选择以管理员身份运行

    • 2.点击页面中左下角的 图标

    • 3.在弹出来的新页面中按照下图操作添加一个新的本地连接

    • 4.在上一步的建立的新的连接中,按照下图操作添加前几步复制的 IP 地址

    • 5.查看本地的 host 文件中是否存在刚才添加的 host,如果存在,则添加成功,如果不存在,请检查上面几步操作是否正确

方式二(修改本机的 host 文件)

  • Windows 系统下的 host 地址为:C:\WINDOWS\system32\drivers\etc

  • Mac 的 Hosts 文件可以通过以下路径进行查找到: 1.Finder->Go->Go to Folder 2.然后输入/etc/hosts 即可找到.

  • 然后将上面复制的几个 IP 地址添加到本机的 host 文件中,保存即可。

  • 若 host 文件打不开,可以使用 Sublime TextNodePad++Vscode等编辑器打开,最后保存即可,若无法保存则需要去修改 host 文件的权限(右键选择属性==》安全,为自己的账户添加修改权限)。

  • host 文件修改代码如下

### (图1的 IP Address)
140.82.112.4  github.com

### (图2的 IP Address)
199.232.69.194 github.global.ssl.fastly.net

### (图3的 4个 IP Address)
185.199.108.153 assets-cdn.github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153  assets-cdn.github.com
185.199.111.153 assets-cdn.github.com

修改后本机 host 如下图所示

5. 刷新本地的 DNS 缓存

  • Windows 下刷新 DNS 缓存命令
ipconfig /flushdns
  • Mac 系统刷新 DNS 缓存命令
sudo killall -HUP mDNSResponder;

建议:建议多刷新几次 DNS 缓存

6. 见证奇迹

重新执行 git 操作,就会见证奇迹!!!

注意,若按照上述步骤操作 github 还是无法连接,请查看本机 git 是否使用了 http/https 代理,若存在代理,则取消 git 的 http/https 代理,然后重新按照尝试一下,就会见证奇迹!

取消 github 代理的方式如下:

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

如果经过一段时间之后,github 再次无法连接了。可能是因为上述三个网址链接中的 IP 地址修改了,此时只需要重新查询这三个网址,重新按照上述步骤修改 host 文件即可。

参考链接

发烂渣 掘金