解决Github访问失败

前言

Github作为全球最大的开源平台,有很多优秀的开源项目,可以在上面找到很多参考代码,是程序员学习交流平台。

原文链接:解决 github 访问失败 | Hackt0's Blog

为什么会时常访问失败呢?

主要是因为我们在请求GitHub的网址时,会先向DNS服务器发送一个请求,DNS服务器解析获取到对应的IP地址,然后发起连接。

被拦截主要原因也是Github属于国外站点,偶尔会被国内神秘怪圈吞噬;而为了减少解析次数,DNS会做缓存,将已有的IP直接返回,此时该IP可能已经被拦截,继续使用DNS缓存访问会一直异常,可以直接ping一下看看:

ping.png

解决办法

绕过DNS解析

最简单的办法当然是既然DNS解析会出错,那我们自己解析好然后访问就好了,那怎么自己添加解析呢?

那就是修改hosts文件,hosts文件是记录常用域名与对应的IP,也是用来做域名解析,且优先级高于DNS解析。常见的用法也包括修改hosts文件达到测试环境和线上环境切换的效果,就是测试的时候添加规则将域名指向内网;还有就是恶意软件常修改hosts来劫持域名,比如将正常导航网页的IP填成到某数字导航IP。

常用的hosts文件位置:

Windows 系统:C:\Windows\System32\drivers\etc\hosts

linux 系统: /etc/hosts

mac/ios 系统: /etc/hosts

手动获取IP地址:

  • 手动获取IP地址也只是通过多台服务器获取到的DNS解析情况来选择最优解,可以使用Dns查询 - 站长工具 (chinaz.com)查找TTL值最小的响应IP
dns.png
  • 添加到对应的hosts文件即可:
addhost.png
  • 如果出现权限问题无法保存,可以将hosts文件复制到个人文档,修改后覆盖回去即可

那么问题来了,如果每次都这么修改就有点麻烦了,有没有工具自动完成呢,同志们早已给了办法

自动修改hosts

按照上面方法修改后可以访问Github了,就可以体验下Github的强大之处了

感谢GitHub加速器,让你“爱”上 GitHub项目作者,实时获取有效IP并发布到https://raw.hellogithub.com/hosts

项目中还提到可以使用Switch hosts quickly!自动切换hosts,添加如下规则开启即可

switch hosts.png

缓存刷新

如果使用方法一之后未能正常访问GitHub,还可以刷新一下系统DNS缓存和浏览器DNS缓存

刷新系统DNS缓存

$ ipconfig /flushdns

清除浏览器DNS缓存

chrome内核浏览器为例,打开chrome://net-internals/#dns页面,点击Clear host cache即可

稳定方案

根据上述方案可以访问github后,可查看顶部原文链接

你可能感兴趣的:(解决Github访问失败)