\WINDOWS\system32\drivers\etc\hosts 文件有什么作用

如题所述

这个文件是从UNIX系统中的/etc/hosts那里借鉴引入的。
在计算机做DNS域名解析的时候(所谓DNS解析,也就是将域名转换为IP地址,例如我们浏览网页时,输入类似 http://www.zhihu.com 这样的让人们容易记住的网址,DNS解析就会将其解析成知乎所在的服务器的IP地址,为客户端电脑与服务器建立连接做好准备),DNS解析的搜索过程是有一定顺序的。

一般来说,当你输入一个网址,客户端首先会在本机的DNS缓存(DNS缓存中记录的是之前一段时间解析过的域名的信息)中查找该地址是否有对应的IP地址,如果有,则直接返回相应的IP地址,如果没有则继续下一步搜索。

一般来说,第二个搜索的即是本机的hosts文件,在这个文件中,每一行都是IP地址和与其对应的主机名(域名,服务器名)。如果在这个文件中能找到相应的服务器域名记录,则直接返回IP地址,如果没有找到,进行下一步搜索。

第三个搜索的动作,一般来说则是向上一级的本地DNS服务器发出解析请求,如果该本地DNS服务器的本地缓存中或者hosts文件中有所请求的相应信息,则将结果直接反馈给用户。如果没有,该DNS服务器将向DNS根服务器(根服务器是最高级别的DNS服务器,在全球有13台,具体介绍请参考 http://zh.wikipedia.org/wiki/%E6%A0%B9%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8B%99%E5%99%A8)询问负责该域名的顶级DNS服务器地址。根DNS会将负责该域的顶级DNS地址反馈给本地DNS。接着本地DNS还会向顶级DNS请求该域名的权威DNS地址,根DNS向本地DNS服务器反馈该域名权威DNS地址。最后本地DNS向权威DNS请求域名解析,权威服务器则会反馈域名解析的结果。本地的DNS服务器会将结果保留在本地的DNS缓存中,同时将解析结果反馈给用户。

此外,以上所说明的DNS搜索的顺序(hosts文件、DNS服务器)在UNIX环境下是可以通过修改/额头从/etc/hosts.conf /etc/nsswitch.conf 等文件来调整的。

因此,该hosts文件可以进行修改,用来实现避免广告、屏蔽网站、避免DNS污染、加快DNS解析等功能。

作者:汪韡
链接:http://www.zhihu.com/question/20543573/answer/15433471
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-03-06
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
相似回答