主机名解析过程:Hosts文件 | DNS | windows查看DNS缓存 | 隐患
摘要
目的:
- 本文以linux虚拟机和Windows为例,来介绍一下主机名解析过程
- 主机名解析不完全是靠DNS
一、基本概念
- 主机名:比如www.baidu.com、
hadoop100
等等
1. Hosts文件
- hosts文件是一个文本文件,用来记录IP和 Hostname(主机名)的映射关系
- 在Windows和linux里面都有
- Windows:
C:\Windows\System32\drivers\etc\hosts
- linux:
/etc/hosts
2. DNS
- DNS,就是Domain Name System的缩写,翻译过来就是域名系统
- 是互联网上作为域名和IP地址相互映射的一个分布式数据库
- DNS是一个多级的服务器,不是只有一级
二、浏览器域名解析系统
1. 案例
操作:用户在浏览器输入了www.baidu.com,过程是怎么样的
-
浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有检查操作系统DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为本地解析器缓存
-
一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录).
在cmd窗口中输入
ipconfig /displaydns
//DNS域名解析缓存ipconfig/flushdns
//手动清理dns缓存
-
如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。
-
如果本地DNS解析器缓存和hosts文件中均没有找到对应的IP,则到域名服务DNS进行解析域
2. 总结
对于一个主机名,先检查DNS缓存,然后查看hosts文件,然后访问DNS服务器
- 而DNS服务器是多级的,先访问本地,本地没有则是根域名服务器,没有的话再网上找
三、Windows指令
总结两个指令
指令 | 功能 | 说明 | 选项 |
---|---|---|---|
ipconfig /displaydns |
DNS域名解析缓存 | ||
ipconfig/flushdns |
手动清理dns缓存 |
四、隐患
- 如果有用户劫持了hosts文件,并填入了以下内容
192.168.200.130 www.baidu.com
- 那么就访问不到百度了
- 或者将银行的官网改成自己的网站,那么就可能进入一个假的网站