github 访问速度太慢

github-speedup-github-preview.png

github 是全世界最流行的开源项目托管平台,其代表的开源文化从根本上改变了软件开发的方式.

基本上所有的需求都能从 github 上或多或少找到现成的实现方案,再也不用重头开始造轮子而是自定义轮子!

然而,有时候国内访问 https://github.com/ 速度太慢,如何加速访问 github.com 网站就成了刚需.

由于 github.com 网站位于美国旧金山,所以初始访问 github.com 时网络寻址会比较耗费时间,这也是网站打开速度慢的其中一个原因.

github-speedup-ipaddress-dns.png

国外在线检测网站: https://www.ipaddress.com/,无法访问的话,请另辟蹊径.

最初用户从浏览器中输入 github.com 网址时,浏览器并不知道这个域名对应的真实 ip 地址,先问问自己电脑认识不认识这个域名的门牌号,如果本机不认识会接着往上问,当地运行商也不认识这个域名的话,继续问上级,直到问出来 github.com 的门牌号是 192.30.253.113 为止!

如此繁琐的问路过程被称之为 DNS 寻址,如果问路的时间都占用很久,那么访问网站的速度自然会很慢.

所以,如果我们直接告诉浏览器目的地,那么浏览器也就不会一步一步去费劲问路了,这在一定程度上也就优化了访问网站的速度.

ping github.com -c 3 查看 github.com 网站的门牌号

正常来说,网站的主域名下会存在多个子域名,由这些域名组合在一起提供完整的服务.

github.com 也不例外,其中 github.com是一级域名,也是主域名,其他的域名基本上都是二级域名或者说次域名.

所以我们不仅要告诉本机 github.com 的主域名,还要把相关的子域名也告诉本机,帮人帮到底,送福送到西!

那到哪里去查询域名和 ip 的对应关系呢?

想一想现实生活中,每个人都有自己的家,而这个家有具体的地址,也就是平时说的门牌号.

当然,有些人名下不只有一个家,有钱人的世界可以有很多家,毕竟狡兔还有三窟呢!

在这个家中既可以是单身窝,也可以是情侣房,或者是家庭房,具体容纳几个人是由房屋大小决定的.

对应到计算机世界中,如果域名是用户,那么 ip 地址就是用户的家.

同一个域名可以对应多个 ip 地址,同一个 ip 地址也可以有多个域名.

如果有人想要拜访您,肯定要有具体的地址才能到你家里做客,从你家到你家的地址这个过程可能是你告诉他的,也可能是他自己找别人打听到的消息.

域名到 ip 地址的过程同样也需要找人询问,这个信息一般会存在 dns 服务商那里,就像我们的地址登记到相关政府机构一样.

虽然相关机构的信息比较权威及时,但门槛有点高,所以不访问一下当地的"消息通".

互联网上的"消息通"更是数不胜数,这里推荐两个查询域名解析的网站.

github-speedup-ipaddress-preview.png
github-speedup-chinaz-preview.png

子域名有哪些

下面以 ipaddress.com 网站为例,查询下 github.com 网站的相关信息.

在输入框中输入 github.com 域名后开始解析该域名的相关信息,不仅找到了域名对应的 ip 地址还查询到相关网站的域名信息.

github-speedup-ipaddress-domain.png

亲自去体验一下: 域名查询

根据查到的相关域名信息,再次查询出这些域名对应的 ip 地址,于是整理出以下内容.

就近 cdn 加速

大型网站服务器都不会是只有一台服务器,而是多台服务器组成的集群一起对外提供服务.

全世界都在使用 github ,如果每一次访问网站时走的都是美国服务器,即使浏览器知道目的地,但是距离太多遥远还是会很慢.

因此,如果能够就近访问 github 网站就能大幅提高访问速度了,幸运的是,网络上同样有现成的工具来帮助我们查看就近的网站地址.

github-speedup-chinaz-dns.png

亲自去体验一下: DNS查询

从上图中我们可以看出,同一个域名有很多不同的 ip 地址,从中选择 TTL 值最小的作为优化标准.

于是,将上述清单继续优化成以下内容:

最好亲自测试一下就近站点以求获得最佳体验,不过推测应该差异不是很大,所以直接复制也无妨.

告诉本机新地址

现在我们已经弄清楚域名和 ip 的映射关系,接下来要做的事情就是告诉本机,不同的操作系统具体文件存放的地址可能有些不同,下面我们以 WindowsMac 举例说明.

windows

映射文件存放于: C:\Windows\System32\drivers\etc\hosts

  • 打开 hosts 文件,将上述映射关系追加到文件末尾,保存并退出.

github-speedup-windows-hosts.png

如果由于权限不足,无法保存,可以复制到桌面再编辑文件,最后移动并替换到 hosts 文件.

  • 运行 ipconfig /flushdns 刷新 dns 缓存.

github-speedup-windows-ping.png

mac

映射文件存放于: /etc/hosts

  • 编辑 hosts 文件并追加上述映射关系.

  • 运行 sudo dscacheutil -flushcache 刷新 dns 缓存.

又到总结时间

本文讲述了如何解决 github.com 网站访问速度慢的问题,通过修改本机的 hosts 文件来绕过 dns 解析,这种方法仅仅适用于能够访问网站只不过是访问速度慢这一现象.

如果本身无法访问国外网站,那么这种方法就不适用,可能需要另辟蹊径!

最后再贴一下 hosts 文件内容:

更新日志

最后更新于

这有帮助吗?