前言

本文主要介绍windows中 hosts 文件的使用,以及运行原理。


一、hosts是什么?

hosts就是系统的一个配置文件,主要配置ip和域名的映射关系,相当于是本地的DNS服务器。
文件存放路径(几乎99%都存放在这个路径下):

WINDOWS\system32\drivers\etc\hosts

二、hosts原理

了解hosts就需要知道DNS是什么?系统又是如何去解析域名?

1.什么是DNS

Domain Name System(域名系统):为了加快定位IP地址的速度, 将域名映射进行层层缓存的系统

(1)首先我们要知道我们平常访问网站的时候,输入一段网址,都是需要经过DNS将输入的如:【www.baidu.com】转换成对应的IP:39.156.66.10我们才可以访问

(2)那么为什么需要DNS呢?如果将IP比作身份证,那么域名就是姓名,如果我们平常都通过身份证号找人可能不方便,号码太长,也无法表示其背后含义,因此我们都是用姓名,互联网同理,我们平常如果都使用一长串的IP地址去访问网站,可能会记不住,而且也麻烦,因此就有了域名,而DNS的作用就是转换IP地址和域名,这样我么只管在上网的时候输入域名即可,解析的工作交给DNS系统
在这里插入图片描述
上图中:baidu.com 就是域名;39.156.66.10 则是背后实质的IP地址

2.DNS解析的顺序

【浏览器的缓存】=》本地操作系统缓存=》DNS服务器(路由缓存=》互联网缓存服务器)

(1)当我们在浏览器中输入一段网址的时候,浏览器会先看下自己是否有这个网站域名的缓存信息,如果浏览器有这个域名的缓存,就不会往下去寻找,将会按照浏览器的缓存直接去访问对应的IP地址;

查看Chrome浏览器缓存,Chrome浏览器中输入:chrome://net-internals/#dns
在这里插入图片描述
如上图:在Domain输入域名,点击Lookup查看即可

(2) 如果浏览器缓存没有,则去Windows系统中的Hosts文件(即本地操作系统缓存)中是否关于这段网址域名的映射关系,有则直接使用,不会再去访问DNS服务器来解析域名。提升了域名解析效率,即Hosts的请求级别比DNS高

(3)最后如果以上都查不到,就会去访问DNS服务器,DNS服务器包括有路由缓存,互联网DNS服务器,以及13台根服务器

a. 电脑通过路由器(或交换机)连入互联网, 为了加快访问的速度, 会缓存使用过的域名
b. 互联网DNS服务器, 是路由缓存的上一级,一般为宽带运营商
c. 一直到最后, 最全的就是根服务器, 一共13台, 通过物理文件的冗余, 分摊全球的域名查询任务

三、配置hosts

(1)按照路径WINDOWS\system32\drivers\etc\hosts 找到hosts文件,右键选择记事本打开hosts
(2)配置:规定要求每段只能包括一个映射关系,IP地址要放在每段的最前面,空格后再写上映射的Host name(主机名)。对于这段的映射的说明用“#”分割后用文字说明。具体操作,如图所示
在这里插入图片描述

(3)配置完hosts,需要刷新DNS

win+r 打开运行框,输入cmd,打开命令窗口,输入:ipconfig/flushdns

附:查看DNS列表:ipconfig/displaydns

(4)检查是否配置生效,打开cmd,ping配置的域名即可,如果可以ping通则表示配置生效

四、应用场景

1、加快域名解析(开发人员必备)
对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,这样当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。
2、方便局域网用户
在很多单位的局域网中,会有服务器提供给用户使用。但由于局域网中一般很少架设DNS服务器,访问这些服务要输入IP地址,相当麻烦。在hosts中配置服务器名称 与 IP映射,这样以后访问的时候我们输入这个服务器的名字。
3、屏蔽网站
将一些经常弹广告或垃圾网站,利用hosts把该网站的域名映射到错误的IP或自己计算机的IP即可,我们在Hosts写上以下内容:
127.0.0.1 屏蔽的网站域名
0.0.0.0 屏蔽的网站域名
4、顺利连接系统
对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好hosts文件,输入服务器名就能顺利连接了。
最后:注意如果实际的IP有变动,也需要手动修改hosts配置

五、hosts修改权限问题

如果遇到修改hosts文件后保存的时候,提示无法保存,有权限问题
1 我们可以通过分配权限的方式来处理:Hosts文件 右键属性=》安全=》编辑=》将需要授权的用户选中,然后将权限勾选上即可
在这里插入图片描述

2 通用办法:将hosts复制一份出来,在桌面修改完成后,再将修改后的hosts覆盖系统的hosts文件即可


总结

以上就是hosts的详细内容。如有错误,欢迎批评指正。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐