主机名解析过程:Hosts文件 | DNS | windows查看DNS缓存 | 隐患

发布时间 2023-07-27 21:59:44作者: Crispy·Candy

摘要

目的:

  • 本文以linux虚拟机和Windows为例,来介绍一下主机名解析过程
  • 主机名解析不完全是靠DNS

一、基本概念

  1. 主机名:比如www.baidu.com、hadoop100等等

1. Hosts文件

  • hosts文件是一个文本文件,用来记录IP和 Hostname(主机名)的映射关系
  • 在Windows和linux里面都有
  • Windows:C:\Windows\System32\drivers\etc\hosts
  • linux:/etc/hosts

2. DNS

  1. DNS,就是Domain Name System的缩写,翻译过来就是域名系统
  2. 是互联网上作为域名和IP地址相互映射的一个分布式数据库
  3. DNS是一个多级的服务器,不是只有一级

二、浏览器域名解析系统

1. 案例

操作:用户在浏览器输入了www.baidu.com,过程是怎么样的

  1. 浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有检查操作系统DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为本地解析器缓存

  2. 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录).

    在cmd窗口中输入

    • ipconfig /displaydns //DNS域名解析缓存
    • ipconfig/flushdns //手动清理dns缓存
  3. 如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。

  4. 如果本地DNS解析器缓存和hosts文件中均没有找到对应的IP,则到域名服务DNS进行解析域

2. 总结

对于一个主机名,先检查DNS缓存,然后查看hosts文件,然后访问DNS服务器

  • 而DNS服务器是多级的,先访问本地,本地没有则是根域名服务器,没有的话再网上找

三、Windows指令

总结两个指令

指令 功能 说明 选项
ipconfig /displaydns DNS域名解析缓存
ipconfig/flushdns 手动清理dns缓存

四、隐患

  • 如果有用户劫持了hosts文件,并填入了以下内容
192.168.200.130 www.baidu.com
  • 那么就访问不到百度了
  • 或者将银行的官网改成自己的网站,那么就可能进入一个假的网站