一步步教你解决github无法打开问题

开源 0

一步步教你解决github无法打开问题

  • 为什么会打不开github
  • 解决
    • 避免根据域名查找ip过程
    • 查找一个github服务器ip,而且访问这个ip要比较快

为什么会打不开github

当我们在浏览器中输入github的网址:https://github.com/,浏览器并不能根据该地址直接访问github服务器。在请求发给github服务器之前,需要先根据输入地址中的域名github.com,从远程dns查找该域名对应的ip地址,然后根据ip地址才能将请求发送到github服务器。流程如下:
在这里插入图片描述
从dns根据域名查找ip,或者根据ip请求github服务器时间太长,导致请求超时,就很容易出现github无法打开的情况:
在这里插入图片描述
从浏览器的网络请求查看,显示耗费了21秒就失败了
在这里插入图片描述

那么,我们该如何解决呢?可以从两个方面入手:
1、避免从远程dns根据域名查找ip的过程;
2、查找一个github服务器ip,而且访问这个ip要比较快。

解决

避免根据域名查找ip过程

为了避免根据域名到远程dns查找ip的过程,我们可以直接在我们的电脑上配置域名和ip的映射,这样当通过域名访问github服务器时,就能直接从本地获取到ip地址,而无需通过远程dns查找。那么,我们又怎么知道一个域名对应的ip是什么呢?有两种方式:一种是在网上找在线工具;另一种是在cmd通过ping域名的方式获取到ip。
比如通过cmd方式获取github.com域名的ip地址:
在这里插入图片描述
可以看到,github.com域名对应的ip地址是20.205.243.166。
如果是通过在线工具,同样可以找到域名对应的ip:
在这里插入图片描述
当我们知道域名对应的ip后,就可以在我们本机配置域名和ip的映射关系。windows系统下,以管理员的身份打开:C:/Windows/System32/drivers/etc/hosts文件,在最后加入一行(ip与域名之间用空格隔开):
在这里插入图片描述
配置好后保存,然后在cmd输入ipconfig /flushdns,这样浏览器就能发现本地的域名与ip映射关系:
在这里插入图片描述
此时再通过浏览器访问github,发现会快了很多(如果没有效果,可以重启下浏览器):
在这里插入图片描述但是很奇怪,现在虽然访问到了github,但是页面布局错乱,完全没法看。从上图的浏览器网络请求上看,发现很多css样式文件都加载失败,所以网页布局错乱,应该就是css资源加载失败导致的。查看下请求css资源的地址,发现它的域名与github的域名不一样,猜测也是根据域名转ip影响的:
在这里插入图片描述
我们按照配置github.com域名与ip映射的思路,也对该域名进行配置。首先找这个域名的ip:
在这里插入图片描述
从cmd发现该域名对应的地址是环回地址(相当于本地地址),我们本地是没有css样式文件的,难怪加载不到css样式文件。那么我们通过在线工具来找ip:
在这里插入图片描述
找出来这么多个,在hosts文件都配上,配上后记得在cmd执行ipconfig /flushdns:
在这里插入图片描述
这个时候再访问github网站,发现网站正常显示,而且访问速度很快:
在这里插入图片描述
至此,如无意外,就能正常访问github了。

查找一个github服务器ip,而且访问这个ip要比较快

通过上面的步骤,我们通过域名找到了ip,避免了通过远程dns转ip的过程 。那么访问这个ip快不快我们又怎么验证呢?我们可以测试一下。比如我们测试一下githu.com域名对应的ip:20.205.243.166。在cmd ping一下这个ip:
在这里插入图片描述
发现访问这个ip,一个往返时间大概是48ms。我们从在线工具拿个其它的ip地址试试:
在这里插入图片描述
发现其它地址都不是很快。那么我们就选用20.205.243.166就可以了。
其它域名如何选合适的ip也同理,可以多试几个,找到访问比较快的ip,配置好就可以了。

也许您对下面的内容还感兴趣: