1、Github 访问失败
主要是因为我们在请求GitHub的网址时,会先向DNS服务器发送一个请求,DNS服务器解析获取到对应的IP地址,然后发起连接。
被拦截主要原因也是Github属于国外站点,偶尔会被国内神秘怪圈吞噬;而为了减少解析次数,DNS会做缓存,将已有的IP直接返回,此时该IP可能已经被拦截,继续使用DNS缓存访问会一直异常,可以直接ping一下看看:
makefile
ping www.github.com
提示:
ping: www.github.com: 域名解析暂时失败
2、绕过DNS解析
DNS解析会出错,我们直接本地配置解析好的IP地址,然后直接访问配置的IP地址即可。
如何添加host配置?
通过修改hosts
文件,hosts文件是记录常用域名与对应的IP地址,本地用来做域名解析的,且优先级高于DNS解析。常见的用法也包括修改hosts文件达到测试环境和线上环境切换的效果,就是测试的时候添加规则将域名指向内网;还有就是恶意软件常修改hosts来劫持域名,比如将正常导航网页的IP填成到某数字导航IP。
2.1、常用的hosts文件位置
- Windows 系统:
C:\Windows\System32\drivers\etc\hosts
- Linux 系统:
/etc/hosts
- Mac(苹果电脑)系统:
/etc/hosts
- Android(安卓)系统:
/system/etc/hosts
- iPhone(iOS)系统:
/etc/hosts
hosts 文件
bash
# 第一列IP地址 第二列域名
127.0.0.1 localhost
修改方法,把第一步的内容复制到文本末尾:
- Windows 使用记事本;
- Linux、Mac 使用 Root 权限;
- iPhone、iPad 须越狱、Android 必须要 root;
2.2、手动获取IP地址
- 手动获取IP地址也只是通过多台服务器获取到的DNS解析情况来选择最优解,可以使用Dns查询 - 站长工具 (chinaz.com)查找TTL值最小的响应IP
2.3、自动修改hosts
按照上面方法修改后可以访问Github了,就可以体验下Github的强大之处了
感谢GitHub加速器,让你"爱"上 GitHub项目作者,实时获取有效IP并发布到github host配置文件下载
一行命令直接替换hosts配置文件,执行命令替换注意权限问题
GNU(Ubuntu/CentOS/Fedora)
sudo sh -c 'sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts'
BSD/macOS
sudo sh -c sed -i "" "/# GitHub520 Host Start/,/# Github520 Host End/d" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts