摘要
目的:
本文以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
那么就访问不到百度了
或者将银行的官网改成自己的网站,那么就可能进入一个假的网站