2022年11月16日发现github间歇性无法访问,这对于着急下载某些软件的人来讲很是折磨,于是通过百度得到一个修改hosts
文件的方法,本文就是建立在解决本问题基础上,顺带科普一下DNS服务器。
DNS服务器的工作原理
我们在浏览器输入网址时,会向 DNS 服务器发送一个请求,DNS
服务器会给我们返回目标网站所在的服务器 IP
,然后浏览器才知道打开哪个网页。 原理如下图所示
问题分析
现在由于DNS服务器的问题,有的是确实服务器有问题,有的是人为因素干扰了DNS服务器正常工作。然而我们的电脑也可以绕过DNS服务器,因为hosts文件提供了域名和IP地址的对应列表,如果此文件存在,则电脑直接访问域名对应的IP地址,如果不存在则访问DNS服务器,但是访问哪一个服务器呢?这个是在网络设置中设置好的,如果一个DNS服务器总出问题,那么我可以更换DNS服务器IP,也就是重新选择一台DNS服务器。但是对于一些自动获取IP地址的情况,这个DNS服务器不一定能够更换,这就有对于特定的网址设置hosts文件列表的必要了.
设置访问GitHub
由于某些原因造成了国内访问GitHub不是很流畅,于是我们可以针对GitHub配置hosts文件,为了解决此问题已经有人专门配置了项目,其官方网站为
https://gitlab.com/ineo6/hosts
或 https://github.com/ineo6/hosts
我的电脑目前可用的IP地址为:
/etc/hosts1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| # New!欢迎使用基于DNS的新方案 # https://gitlab.com/ineo6/hosts/-/raw/master/next-hosts # 地址可能会变动,请务必关注GitHub、Gitlab获取最新消息 # 也可以关注公众号:湖中剑,保证不迷路 # GitHub Host Start 140.82.113.3 central.github.com 140.82.113.3 assets-cdn.github.com 151.101.1.6 github.map.fastly.net 151.101.1.6 github.global.ssl.fastly.net 140.82.113.3 gist.github.com 185.199.108.153 github.io 140.82.113.3 github.com 140.82.113.3 api.github.com 140.82.113.3 codeload.github.com 72.21.206.80 github-cloud.s3.amazonaws.com 72.21.206.80 github-com.s3.amazonaws.com 72.21.206.80 github-production-release-asset-2e65be.s3.amazonaws.com 72.21.206.80 github-production-user-asset-6210df.s3.amazonaws.com 72.21.206.80 github-production-repository-file-5c1aeb.s3.amazonaws.com 185.199.108.153 githubstatus.com 140.82.112.18 github.community 140.82.113.3 raw.github.com # # Please Star : https://github.com/ineo6/hosts # Mirror Repo : https://gitlab.com/ineo6/hosts # # Update at: 2022-11-16 11:14:10 # # GitHub Host End
|
有时候因为某些原因,网址对应的IP地址可能会发生变动,这时候需要重新设置hosts文件,就像上面这相配置说的那样,到网站
https://gitlab.com/ineo6/hosts/-/raw/master/next-hosts
找到最新的设置,然后替换掉原来的hosts内容就可以了。