在讲hosts之前,我们需要先了解DNS解析查询的顺序。在用户输入域名DNS解析查询的顺序是下面这样的。
DNS查询顺序
(1)浏览器会首先查看自身的缓存,如果浏览器缓存中有对应的解析记录,直接返回结果;
(2)如果浏览器没有缓存,电脑会查看本地操作系统的缓存,如果有记录,直接返回结果;
(3)如果浏览器和本地缓存中都没有记录,会向递归解析服务器发起请求,递归服务器如果有记录直接返回,如果没记录会向全球发起递归查询,直到获得对应解析记录返回客户端并保存在本地。
什么是hosts文件?
在上面的DNS查询过程中,第二个步骤即电脑查看本地操作系统中的缓存,这里的缓存文件即为hosts文件。
由操作系统操作的IP和域名的本地映射文件,可以视为DNS server的重写,一旦查到了指定的域名,就不会继续查找DNS server, 所以可以节省时间。
但是hosts设置的IP地址是静态的,如果web app的宿主机地址发生改变,对应的hosts也要改写。
hosts是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,无需进行下面的解析查询过程,因此大大节省了查询时间。如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
需要注意的是hosts设置的IP地址是静态的,如果web app的宿主机地址发生改变,对应的hosts也要改写。
Hosts文件作用
(1)加快域名解析
上面我们提到了,在hosts文件中直接配置域名和IP的映射关系,可以无需进行全球的递归查询过程,提高了域名解析速度。
(2)方便局域网用户
一般的局域网中很少自建DNS服务器,所以当访问局域网服务器时,必须输入IP地址才能访问,十分麻烦。通过hosts文件,我们可以为这些服务器取一个简单的名字,然后建立一个IP的映射,访问的时候,只需输入服务器的名字就能完成访问。
(3)屏蔽网站(域名重定向)
有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,其中有些说不定就是木马或病毒。对于这些网站我们可以利用Hosts把该网站的域名映射到错误的IP或本地计算机的IP,这样就不用访问了。在WINDOWS系统中,约定 127.0.0.1 为本地计算机的IP地址, 0.0.0.0是错误的IP地址。
如果,我们在Hosts中,写入以下内容:
127.0.0.1 # 要屏蔽的网站 A
0.0.0.0 # 要屏蔽的网站 B
计算机解析域名A和 B时,就解析到本机IP或错误的IP,达到了屏蔽网站A 和B的目的。
(4)顺利连接系统
对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了。
(5)虚拟域名
很多时候,网站建设者需要把软环境搭建好,再进行上传调试。但类似于邮件服务,则需要使用域名来辅助调试,这时就可以将本地 IP 地址与一个虚拟域名做地址指向,就可以达到要求的效果,且无需花费。如:
127.0.0.1 网站域名
之后在浏览器地址栏中输入对应的网站域名即可。
如何修改hosts文件?
修改HOSTS法就是把HOSTS文件中的DNS解析对应关系进行修改,从而实现正确解析的目的。因为在本地计算机访问某域名时会首先查看本地系统中的HOSTS文件,HOSTS文件中的解析关系优先级大于DNS服务器上的解析关系。
这样当我们希望把某个域名与某IP地址绑定的话,就可以通过在HOSTS文件中添加解析条目来实现。
(1)搜索hosts文件
C:WindowsSystem32driversetc
(2)通过记事本方式打开hosts文件
注意:以#开头的均为注释,不起作用
(3)将你希望进行DNS解析的条目添加到HOSTS文件中,具体格式是先写该域名对应的IP地址,然后空格加域名信息。
(4)添加完毕后,我们就可以根据设置的解析条目进行解析访问了。