Linux系统解析域名的先后顺序files(/etc/hosts)OR dns(/etc/resolv.conf)

 

涉及3个/etc目录下的文件。
1、/etc/hosts   配置域名与IP对应关系
2、/etc/resolv.conf   配置DNS服务器
3、/etc/nsswitch.conf   配置解析顺序,是先解析hosts文件,还是先解析DNS服务器

(1)如果hosts未配置,DNS未配置,必定会报unknowns hosts
(2)如果hosts未配置,DNS配置,可能会报unknowns hosts,因为DNS服务器可能会解析慢导致unknown hosts,或者会有些超时
(3)如果配置hosts,DNS配置,但是nsswitch解析顺序是DNS在前,hosts在后,则情况和(2)其实是一样的
(4)如果配置hosts,DNS配置,且nsswitch解析顺序是hosts在前,DNS在后,则这种是比较好的配置方式。但是如果是容灾的话,需要修改nsswitch将DNS放在前面,因为要解析域名到内蒙。
 
如果要容灾,就需要dns在前,如果不需要,files在前,但是hosts也要配置下映射关系,避免出现unknownhosts。
两种情况下hosts里面都要配映射关系 dns在前时可以容错 file在前时 hosts里没有还是回去dns解析 那file在前就没意义了。

gd_WWW已经在本地(/etc/hosts)进行指向,但是竟然还能解析到外网,让我百思不得其解。经过不断查找发现域名解析与以下四个文件有关:

/etc/hosts 

/etc/host.conf 

/etc/resolv.conf

/etc/nsswitch.conf

 

一、nsswitch.conf

nsswitch.conf与系统获取解析的顺序有关。

[root@f5ha.com ~]# vi /etc/nsswitch.conf  #找到hosts关键字
#hosts:     db files nisplus nis dns
hosts:      files dns                    #此为默认配置  

 从配置文件就可以看出系统是先files(/etc/hosts)解析,再从dns(/etc/resolv.conf)解析。

 更改为       hosts:     dns files

重启网络服务service network restart

发现无效。

重启系统后生效,先通过dns解析,出现用户的现象,外网解析本地计算机名。

 

二、hosts文件

和Windows系统(C:\Windows\System32\drivers\etc\hosts)下的host的文件相类似,就是一个文本文件,里面存放一些IP和域名的对应关系。

 

三、resolv.conf文件

配置Linux系统DNS服务器的配置文件:

cat < /etc/resolv.conf

nameserver *****

 

四、host.conf文件

这个现在基本已经不用了,都改为nsswitch.conf了。

cat < /etc/host.conf

multi on

order hosts,bind

order hosts bind 表示先查询本地hosts文件,如果没有结果,再尝试查找BIND dns服务器。

 

posted @ 2017-12-26 15:22  白白的白浅  阅读(5678)  评论(0编辑  收藏  举报