电脑里的C:\WINDOWS\system32\drivers\etc中的hosts文件是做什么的?

电脑里的C:\WINDOWS\system32\drivers\etc中的hosts文件是做什么的?

前言

最近测试的时候遇到一个问题,要打开我们公司一个APP的网页管理端和客户端配合进行测试,但是很奇怪的,输入管理端的网址却打不开,提示无法访问此网址。然后后台跟我说用一个IP。。。我???一脸懵逼。后来后台让我在C:\Windows\System32\drivers\etc下的hosts下加“221.255.78.122 abc.com”(例如)再打开abc.com就可以了,我当时搞不明白为什么,后来下来查了一些资料才明白,所以记录一下。

域名解析的过程

什么是DNS
  • 这个问题跟DNS有关,先说一下什么是DNS吧,DNS即Domain Name System,域名系统服务器,这个域名系统是干嘛的呢?这其实跟我们平时的上网息息相关,我们上网的时候,都是先找一个浏览器,然后在浏览器中输入一个网址,点击回车,这样页面就会跳转到我们想要的网页上。这其中DNS就发挥了作用,因为我们输入的都是域名,比如"www.baidu.com"这种的方便人们记忆的,但是计算机其实并不能解析这个,计算机能够识别的是IP地址,如“202.101.139.188”,这时候就需要把我们输入的域名解析成为计算机能够识别的IP地址,而DNS就是做这个的。简单来说,当我们在地址栏中输入“www.baidu.com”的域名之后,计算机会向DNS服务器查询该域名所对应有IP地址,然后计算机就可以调出那个IP地址所对应的网页,并将网页在我们的浏览器上显示。另外说明一下,一个域名对应一个IP地址,一个IP地址可以对应多个域名;如果想要具体了解输入一个网址到底发生了什么,可以参考这篇文章:计算机基础.
DNS解析步骤
  • 但是实际上并不是我们每次访问一个网址的时候都要和DNS服务器建立连接,因为如果这样的话速度比较慢,所以域名的解析会有一个顺序:
  1. 当输入一串网站,客户端首先会在本地DNS缓存里面查找是否有相应的IP地址,DNS缓存是指用户成功访问了一个网址后,系统会将这个结果临时存储起来,并设定一个失效时间,在这段时间之类,你再次访问这个网址,就不必再去和DNS服务器建立联系,直接从本地的NDS缓存中把结果返回给你,从而加快网址的解析。如果本地DNS缓存没有相应的IP地址的话,则进行下一步的搜索。
  2. 第二步则是在C:\WINDOWS\system32\drivers\etc中的hosts文件中查找,hosts文件是域名解析文件,它包含IP地址和主机名的映射关系,如果在这个文件中能找到相应的服务器域名记录,则直接返回IP地址,如果没有找到,进行下一步搜索。
  3. 在上两个地方没有找到IP地址的话,就会向上一级的DNS服务器发出解析请求,如果该本地DNS服务器的本地缓存中或者hosts文件中有所请求的相应信息,则将结果直接反馈给用户。如果没有,该DNS服务器将向DNS根服务器询问负责该域名的顶级DNS服务器地址,根DNS会将负责该域的顶级DNS地址反馈给本地DNS。接着本地DNS还会向顶级DNS请求该域名的权威DNS地址,根DNS向本地DNS服务器反馈该域名权威DNS地址。最后本地DNS向权威DNS请求域名解析,权威服务器则会反馈域名解析的结果。本地的DNS服务器会将结果保留在本地的DNS缓存中,同时将解析结果反馈给用户。(这里有点绕,我也没太绕出来。。。)

顺便普及一下如何查看和删除本地的DNS缓存:

  • 查看DNS缓存:点击键盘win键+R,进入运行,输入cmd回车进入命令窗口,输入ipconfig/displaydns回车就可以看到你本地的DNS缓存了;
  • 清除DNS缓存:命令行里输入ipconfig/flushdns回车就清除啦

C:\WINDOWS\system32\drivers\etc中的hosts文件的作用

1. 加快域名的解析:
  • 在host文件中建立映射后,就不用去请求网络DNS服务器,能够提高域名解析速度。
2. 方便局域网:
  • 在许多公司的局域网中有服务器,但一般没有DNS服务器,所以只能通过输入IP地址进行登录,十分难记,所以可以利用hosts文件建立IP映射,打开hosts文件,同样在新开启的空白行中输入“221.255.78.122 abc.com”(假定221.255.78.122是公司服务器在局域网中的IP地址,abc.om是服务器的主机名,IP地址和主机名之间有一个空格)就可以直接输入服务器的名字(abc.com)就可以访问了。
  • 我遇到的应该就是这个问题,所以直接在hosts文件中建立IP映射就可以访问了。
3. 屏蔽网站
  • 有时候我们下载软件的时候会有一些恶意的插件、浏览网页的时候弹出广告等情况可以通过这种方法屏蔽掉,通过hosts文件将网站域名映射到错误的IP地址上,就可以达到目的。例如:0.0.0.0 www.XXXX.com (屏蔽www.XXXX.com)
4. 找回“失效”的网址
  • 有时候一些恶意的病毒或网页更改了你的hosts文件,导致你无法打开想要的网址,可以打开hosts文件将错误记录全部删除,然后保存就ok了。

结语

  • 这一部分知识应该是计算机基础里面的,只怪自己当初没有好好学习,不懂计算机工作的原理,计算机真的是博大精深啊,还是得脚踏实地,一步一步来。把学习到的记录下来,希望能够加深印象,看到的朋友也希望对你有所帮助,喜欢的点个赞吧!

  • 参考文章:

  1. c:\Windows\System32\drivers\etc\hosts的作用
  2. 修改C_WINDOWS_system32_drivers_etc_hosts 文件有什么作用
  3. IP地址与域名解析
  4. 电脑里的C:\WINDOWS\system32\drivers\etc中的hosts文件是做什么的?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值