DNS原理(DNS&Host)
DNS:Domain Name System域名系统
客户端查询DNS的过程是:本地host文件---本地缓存----DNS服务器
具体流程如图:
了解上述过程,我们将焦点转到Host.
Host文件用于本地DNS解析,并且优先于寻找网络上的DNS服务器,在Windows中,它的目录通常在[Windows目录]\system32\drivers\etc\下。
截个图贴出来Host文件:
Hosts文件是一个纯文本文件,用记事本就可以将其打开。这个文件是根据TCP/IP for Windows 的标准来工作的,它的作用是包含IP地址和Host name(主机名)的映射关系,每段只能包括一个映射关系,IP地址要放在每段的最前面,后面写Host name(主机名),中间加个空格。如:127.0.0.1 localhost.
我们知道,当电脑访问网站时,首先通过DNS服务器把网络
域名解析成IP地址后,我们的计算机才能访问。如果每个域名请求都要等待域名服务器解析后返回IP,访问速度就会比较慢,而Hosts文件正可以解决这个
问题。在进行DNS请求以前,Windows系统会先检查Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向DNS服
务器提出域名解析。
对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,这样当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。
如果某个网站带有恶意木马或者病毒,你完全可以将其屏蔽掉,只写上IP地址,而不写上域名,还可以用#跟上说明文字.如:127.0.0.1 #屏掉 呵呵!
另外附上一个小故事,是我的同事伟强分享的,说在DNS团队初期,他们用的是Host存放这种映射关系,但是随着用户的增多,发现host文件嗷嗷大,如果用多个host,文件多了麻烦自然就来了,因此他们搞出来DNS用来干这个事情。
这里给一个开源社区的讨论组一个人的回复,我想对于继续学习可能是个启发点,这里记录下来:
论坛网址:http://www.oschina.net/question/159037_69600
网友窦智:
hosts速度快,不依赖网络,不用担心DNS服务器挂了。
刚开始我内网200多台机器就是靠puppet分发hosts来搞的。后来又换成了内网DNS的方案,感觉还是集中化管理方便一些。