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服务器。