原因简述
GitHub的域名遭到DNS污染,导致无法连接使用 GitHub 的加速分发服务器,才使得国内访问速度很慢。
为了分析原因,我们首先需要了解域名访问服务器的原理和DNS污染。
域名访问服务器的原理
由上图可知,域名访问网站服务器中最重要的环节是DNS解析域名和IP地址的对应关系,那么为啥会出现DNS污染呢?
DNS污染(域名服务器缓存污染):
DNS为缓解网络压力,会缓存解析到的域名和IP地址的对应信息,一些无意或者有意制造出来的域名服务器数据包会致使缓存受到污染,缓存收到污染就会减慢域名解析到正确IP的时间,更严重的返回错误的IP地址。
上述我们明白了访问速度慢的原因,那怎么去解决呢?处理DNS污染?不通过DNS访问服务器?
此处提供两种解决方案
方案一
hosts文件
hosts文件位于C:windowssystem32driversetc文件夹内,hosts文件是一个没有扩展名的系统文件,可以用记事本等工具打开,作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
了解hosts文件后,我们知道如何不通过DNS服务器访问服务器,那么如何获取网站的IP地址呢?例如:GitHub.com?,我们可以在https://www.ipaddress.com/网站中通过域名查询服务器IP地址,具体见下图:
步骤
修改hosts文件:
140.82.113.4 GitHub.com
151.101.185.194 GitHub.global.ssl.fastly.net
更新dns缓存
在命令行中输入ipconfig /flushdns指令
注意:hosts文件在C:windowssystem32driversetc文件夹内不能修改,需复制出来后再进行修改,如该文件夹内没有hosts文件,新建hosts.txt文件,添加内容后,重命名后缀名后复制进C:windowssystem32driversetc文件夹内即可。
方案二
企业本地租赁优质的通往海外的互联网国际出口资源,比如电信的国际精品网络,我们的国际加速产品,也叫国际专线接入服务。此方案是通过互联网的方式,来解决网络访问问题,实施周期短,效果提升明显,特别是针对美国的Github服务器。
如果你是临时加速或者个人使用可以使用方案一,如果是企业用户推荐使用方案二。
如果你有GitHub访问慢的问题,可以联系我们,我们可以提供全面的Github加速解决方案。