hosts文件原理及运用


了解hosts前先了解下网络工作原理。

我们访问网站,实际是通过ip地址访问该网站的服务器,例如百度的其中一个ip地址为 14.215.177.39,而每次访问网站输入ip地址太麻烦,ip地址也不容易记住,这时候就用到了域名,比如百度的域名 www.baidu.com 。

这样,我们访问网站时只需要输入域名即可,浏览器通过请求DNS服务器将域名解析成 ip地址从而访问网站。

详细可看 DNS解析过程原理 - 掘金 (juejin.cn)

what is hosts?

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,也就是映射关系。需要注意的是,Hosts文件配置的映射是静态的,这样如果ip地址改变了,那我们将无法访问,所以我们要定时更新IP地址。

where is hosts?

C:\Windows\System32\drivers\etc\

hosts文件如何修改?

hosts所在目录中是不能修改文件的,因为权限不够。所以,我们可以将hosts文件复制到桌面或者其它位置,修改完毕后在替换原文件即可。

hosts有什么用?

操作系统规定,在进行DNS请求以前,先检查自己的Hosts文件中是否有这个域名和IP的映射关系。如果有,则直接访问这个IP地址指定的网络位置,如果没有,再向已知的DNS服务器提出域名解析请求。也就是说Hosts的IP解析优先级比DNS要高。

依据这个,我们就可以用来加速网页访问以及屏蔽广告

如何加速网页访问?

在hosts中添加指定域名和其对应ip后,hosts文件优先级高于DNS,这样浏览器不会产生对DNS域名服务器的请求,不会发生对域名的解析,直接在hosts中找到ip地址访问即可。不解析域名直接访问ip地址,这样就相当于加速了网页访问。

当然,这样的方法并不总是有效,因为有的一个域名有多个ip地址,多个ip就会产生一个问题!每个时间段中每个ip地址访问时间都是不一样的。而我们在hosts文件中只指定了一个IP。正是因此,这个方法有时候未必起到加速的作用。

这个方法对github的访问也许有较大帮助。

有自愿者在github上发布了hosts文件,里面维护了全球正确的 DNS 记录文件,有些域名ip地址可以参考这个,比如github的ip地址。

ADhosts/hosts at master · otobtc/ADhosts · GitHub

具体示例:
在这里插入图片描述

那如何查看一个域名的ip的地址呢?

你可以使用 命令 nslookup+域名 的方式查看ip地址,但这方法不是很建议。

nslookup命令详解_在努力!-CSDN博客_nslookup命令详解步骤

nslookup命令详解 - 马昌伟 - 博客园 (cnblogs.com)

win+R 然后输入 cmd 打开命令提示符

当你使用nslookup+域名的方式无法获取ip地址时,可以指定域名服务器。

图中 8.8.8.8是谷歌DNS服务器,指定使用谷歌DNS服务器解析域名。

非权威应答表示我所查询的域名不在谷歌DNS服务器记录中,是谷歌DNS服务器在其它DNS服务器上得到的。

图中我获得了百度的两个ip地址,但不是百度只有这两个。你换个时间再查看,也许获得的ip地址就不一样了。

image-20211116223244304

如何屏蔽广告?

当我们访问的网页中含有广告链接时,加载渲染该网页时会产生对这些广告链接的请求,然后浏览器就会对这个链接进行解析(实际是DNS服务器解析的),而后弹出广告页面。

一样的,我们在hosts在对广告链接进行指定ip(一般为本机回环地址),因为hosts优先级高于DNS服务器,所以相当于我们改变了广告链接的实际ip地址,这样就不会产生广告了。

本机回环地址:127.0.0.0-127.255.255.255 两边不能取。通常使用127.0.0.1

屏蔽广告具体可以查看我的这一篇博客
修改hosts文件屏蔽广告原理及实现_diyu-CSDN博客

总结
hosts功能由此可以看出很强大。所以,我们平时可以打开hosts文件看看,如果安装了什么恶意软件或者其它原因修改了域名、ip地址,及时删除。

猜你喜欢

转载自blog.csdn.net/qq_45945548/article/details/121367837