脚本宝典收集整理的这篇文章主要介绍了修改Hosts访问被DNS污染的网站,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么会访问失败或者速度很慢?
国内网络访问 Github 速度过慢的原因有许多,但其中最直接和原因是其 CND 域名遭到 DNS 污染,导致我们无法连接使用 GitHub 的加速服务,因此访问速度缓慢。
简单理解:CDN「Content Delivery Network」,即内容分发网络,依靠部署在各地的边缘服务器,平衡中心服务器的负荷,就近提供用户所需内容,提高响应速度和命中率。DNS 污染,是指一些刻意或无意制造出来的数据包,把域名指向不正确的 IP 地址,阻碍了网络访问。
我们默认从目标网址的最近 CDN 节点获取内容,但当节点过远或 DNS 指向错误时,就会操成访问速度过慢或无法访问的问题。
这三种情况是有区别的,含义不一样:
自然导致这三种情况的原因也不尽相同:
可以利用两个工具来判断不同域名或 IP 地址是上述那种情况。笔者以github.COM
为例,实际操作一遍检测的过程,看看是什么情况:
ping
工具,例如这个,检测网址、IP 地址的通讯情况。输入要检测的网址github.com
,点击「Ping 检测」。工具提供的服务是利用自己分布在各地的网络节点的本机ping
工具,执行对网址的ping
操作,汇总结果,统计响应网址的服务器 IP。ping
通github.com
,即无法建立网络通讯。网络上的ping
工具能为我们提供三个重要的信息:首先,如果存在ping
通的节点,那么 IP 服务器没有宕机;其次,响应 IP 汇总表提供了所有可能的服务器与 CDN 的 IP 地址;最后,具体信息部分可以点击响应时间排序,我们可以找到响应最快的服务器 IP。
ping
工具来测试网络。打开终端,输入ping [ip address]
,替换其中的 IP 地址或域名即可。我们不ping
域名,那样会ping
向设置的 DNS 解析出来的 IP 地址。我们ping
上一步得到的响应最快的服务器。ping 140.82.114.4 # 这个IP是响应最快的,来自加拿大
ping 192.30.253.112 # 这个IP也可以响应,来自中国香港
这一步说明,如果我们网络设置的 DNS 解析出的github.com
的 IP 无法在本机ping
通,我们便不能够访问该网址。这也是后面通过修改系统 Hosts 文件来解决访问失败问题的原因。
最后我们可以用浏览器尝试直接打开ping
通的 IP 地址。其结果是:140.82.114.4
无法被浏览器加载;192.30.253.112
可以加载出 Github 首页。
上一步操作的结果就是我们判断三种情况的依据。
192.30.253.112
响应的github.com
,属于「访问慢」,可以连接但延迟较高;IP 可以被浏览器加载。140.82.114.4
响应的github.com
,同样属于「访问慢」;但被浏览器直接加载时,属于「无法加载」,即可以ping
通但无法直接访问。13.229.188.59
响应的github.com
,属于「无法通讯」,无法建立链接。上面提到的这些东西有点乱了,整理一下。
192.30.253.112
。github.com
。<协议>://<域名或IP>:<端口>/<路径>
。<协议>://<域名或IP>
是必需的,<端口>/<路径>
有时可省略。形如https://www.github.com
。注意,IP 地址和域名是一对多的关系。一个 IP 可以对应多个不同的域名,但是一个域名只能对应一个 IP 地址。就跟人的名字一样,你可以有多个名字。但这些名字都是指的你。
然而我们利用网络工具测试时,发现github.com
有多个响应 IP 服务器。这就是开头提到的 CDN 服务。多个平行的服务器响应,均匀了中心服务器的负载,使得网络通讯更加迅速。
现实的情况是,github.com
启用的 CDN 节点遭到了 DNS 污染,错误的 IP 指向,包括错误 IP、响应过慢的 IP,都会造成我们访问 Github 失败。
再总结一下 Github 访问失败或者缓慢的原因:本机网络设置的 DNS 服务器解析 Github 相关域名到遭受污染的 IP 地址,这些 IP 地址要么本身无法访问,要么节点过远,从而导致了访问失败或者速度缓慢。
那么我们修改的方案可以是:
显然第一种方案更加方便。因为 DNS 服务器储存的映射关系是动态更新的,无法直接控制。直接修改本机 Hosts 文件,锁定域名对应的 IP,更加有效方便。当然,Hosts 文件的作用就是绑定域名与 IP 的映射关系。
C:WindowsSystem32driversetchosts
ipconfig /flushdns
列出当前使用的 Github 相关域名比较合适的 IP 值。其中的设置可以解决github.com
头像无法显示的问题:
#Github xj
52.192.72.89 github.com
54.251.140.56 nodeload.github.com
203.208.39.99 api.github.com
203.208.39.99 github.global.ssl.fastly.net
140.82.113.9 codeload.github.com
185.199.108.133 raw.github.com
185.199.108.153 training.github.com
185.199.108.153 assets-cdn.github.com
185.199.108.153 documentcloud.github.com
185.199.108.154 help.github.com
185.199.108.153 githubstatus.com
185.199.111.133 raw.githubusercontent.com
185.199.108.133 cloud.githubusercontent.com
185.199.108.133 gist.githubusercontent.com
185.199.108.133 marketplace-screenshots.githubusercontent.com
185.199.108.133 repository-images.githubusercontent.com
185.199.108.133 user-images.githubusercontent.com
185.199.108.133 desktop.githubusercontent.com
185.199.108.133 avatars.githubusercontent.com
185.199.108.133 avatars0.githubusercontent.com
185.199.108.133 avatars1.githubusercontent.com
185.199.108.133 avatars2.githubusercontent.com
185.199.108.133 avatars3.githubusercontent.com
185.199.108.133 avatars4.githubusercontent.com
185.199.108.133 avatars5.githubusercontent.com
185.199.108.133 avatars6.githubusercontent.com
185.199.108.133 avatars7.githubusercontent.com
185.199.108.133 avatars8.githubusercontent.com
不一定保证每一项都是正确、有效的,但目前来说实测能够稳定访问 Github。
以上是脚本宝典为你收集整理的修改Hosts访问被DNS污染的网站全部内容,希望文章能够帮你解决修改Hosts访问被DNS污染的网站所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。