解决 github 过慢或无法访问的方法

警告
本文最后更新于 2022-11-21,文中内容可能已过时。

github 在国内,有时会遇到打不开或者过慢的问题。这么好的东西,竟然不给用,这就很过分了,经过测试,绝大多数是 DNS 解析的问题,有可能是 DNS 污染,也有可能是有意为之,尤其国内几个基础运营商默认的 DNS,对于 github 和它的相关域名,解析结果大多数为 0.0.0.0 或 127.0.0.1,v 站上众多开发者测试都是这个结果。我测试了自己广州电信的网络,raw.githubusercontent.com 也无法打开。参看(需要爬墙)v 站帖子

DNS 解析这个问题,最简单的方式修改本机 hosts 文件,通过直接指定域名对应 ip 来实现访问,需要注意的是,所有厂家服务器的 ip 都可能会变的,域名解析出来的 ip 不是永远不变的,因此需要及时检查。

我们访问一个网站时,系统会优先在 hosts 文件里检查是否有这个 ip 域名的地址映射关系,如有就直接使用这个 ip 地址,如无,才会去 DNS 服务器把查询其 IP 地址,以供计算机访问。

所以 hosts 里地址映射查询,是在 DNS 解析之前的。

  • Linux / MacOS hosts 路径:/etc/hosts
  • Windows hosts 路径:C:\Windows\System32\drivers\etc\hosts

通过查询域名对应的 ip 地址,手动添加 ip 域名到 hosts 文件。

比如我发现我电脑上 https://raw.githubusercontent.com/ 不能访问,在 www.ipaddress.com 查询发现,它有 4 个 ipv4 和 4 个 ipv6,ipv4 可以 ping 通,因此将 ipv4 的 ip 添加到 hosts 文件中,同个可以同时添加多个 ip,访问时从第一个开始获取,解析失败时顺延第二个。添加格式:

1
2
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com

https://s.imgkb.xyz/abcdocker/2022/11/22/5aadf3ace5fc8/5aadf3ace5fc8.png

添加后,就可以直接访问 https://raw.githubusercontent.com/ 了。

这是一个测试 IP 是否被封的网站工具,通过 ICMP 和 TCP 来检查,输入 ip 后查看测试结果 ICMP 和 ping 一样,TCP 就好比是检测该 IP 的 Linux VPS 能否通过 SSH 连接。国内外都一致即说明没被墙。不过我测试 111 发现有时可以有时不行,不是很稳定。 https://s.imgkb.xyz/abcdocker/2022/11/22/3d8b224647387/3d8b224647387.png

Fetch GitHub Hosts 是一个非常有用的工具,在 github 上开源,它解决了实时监控和同步 github hosts 的问题。

它的原理是通过部署此项目本身的服务器来获取 github.com 的 hosts,而不是通过第三方 ip 地址接口来进行获取,例如 ipaddress.com 等。

值得注意的 Fetch GitHub Hosts 获取的 hosts 上 github 的 ip 和 ipaddress.com 上查的不一定一样,不同地区请求的 github 地址可能分发向不同的服务器。

Fetch GitHub Hosts 使用很简单,支持全平台,支持客户端和服务端运行,有运行界面,也可以做成服务在后台运行。可以设置自动获取 hosts 的时间间隔和或 hosts 源。因此非常方便。当然你可以复制他的 hosts 源 https://hosts.gitcdn.top/hosts.txt 进行手动进行更新。 https://s.imgkb.xyz/abcdocker/2022/11/22/dd0d563277153/dd0d563277153.png

Fetch GitHub Hosts[https://hosts.gitcdn.top/] https://learnku.com/articles/43426

0%