解决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作用:

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

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

hosts文件所在位置:

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

工具推荐

查域名ip网站 www.ipaddress.com

通过查询域名对应的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/ 了。

检查是否被墙 https://www.vps234.com/ipchecker/

这是一个测试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

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%