https://blog.csdn.net/wangjianno2/article/details/50514262
https://blog.csdn.net/xinlongabc/article/details/47075293
1./etc/hosts
hosts文件,官方全称为The static table lookup for host name,中文为主机名查询静态表。hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在“/etc”目录下,文件名为“hosts”(不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname)。hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在域名解析过程中,会先查询/etc/hosts中是否已有(domain->ip)的映射关系,若无,将向local DNS发起域名解析请求。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。
一般来说,/etc/hosts的配置格式为:
IP地址 主机名 主机名别名1 主机名别名2 .....
举例来说,如下为某台redhat服务上的/etc/hosts文件的内容:
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
备注:
(1)::1为IPv6的回环地址,相当于IPv4的127.0.0.1
(2)通过上面的配置可以发现,主机名的别名可以有很多个
2./etc/resolv.conf
/etc/resolv.conf配置的是本地DNS(local DNS)服务器,也就是本机要访问某个域名时,就会向/etc/resolv.conf中配置的DNS服务器发起DNS解析的请求。/etc/resolv.conf的配置文件结构如下:
nameserver x.x.x.x
nameserver y.y.y.y
nameserver ....
search sohu.com
domain sohu.com
options rotate
其中nameserver表示DNS服务器,nameserver可以配置多个。当配置多个nameserver时,在每次发起域名解析请求时,都会向第一个nameserver发起请求,如果请求第一个nameserver超时,就会向第二个nameserver发起请求。所以一般来说,越排在前面的nameserver的压力就越大。如果配置了options rotate后,会以轮询的方式向这些nameserver发起请求,这种场景下,各个nameserver的压力是差不多的。
search和domain表示当我们请求解析的域名写的不完整时,比如我们想要请求解析www.sohu.com,但我们只使用www(nslookup www),这时domain和search就会将其补齐为www.sohu.com。另外,domain和search同时配置时,谁在后面谁就生效。
————————————————
版权声明:本文为CSDN博主「佚名-2021」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangjianno2/article/details/50514262
resolv.conf文件中有search项时,主机名解析规则顺序:
DNS配置文件如下:
vi /etc/resolv.conf
Generated by NetworkManager
search openstack.local dev.com example.local
nameserver 192.168.122.21
1
2
3
4
例1:查询主机名,因为主机名后面没有点,就认为是主机名,所以先添加search里的每一项依次组成FQDN(完全合格域名)来查询,完全合格域名查询未找到,就再认为主机名是完全合格域名来查询。
host -a centos7-bind-1
Trying "centos7-bind-1.openstack.local"
Trying "centos7-bind-1.dev.com"
Trying "centos7-bind-1.example.local"
Trying "centos7-bind-1"
;; connection timed out; no servers could be reached
1
2
3
4
5
6
例2:查询主机名,因为主机名中有点(不是末尾有点),就认为是完全合格域名,先用它来查询,查询失败就把它当成是主机名来进行,添加search里的每一项组成FQDN(完全合格域名)来查询。
host -a centos7-bind-1.com
Trying "centos7-bind-1.com"
Received 109 bytes from 192.168.122.21#53 in 177 ms
Trying "centos7-bind-1.com.openstack.local"
Trying "centos7-bind-1.com.dev.com"
Trying "centos7-bind-1.com.example.local"
Host centos7-bind-1.com not found: 3(NXDOMAIN)
Received 125 bytes from 192.168.122.21#53 in 55 ms
1
2
3
4
5
6
7
8
例3:查询主机名,因为主机名中末尾有点,则认为是完全合格域名,只用它来查询(不会再添加search里的每一项)。查询次数会与search里项域名个数有关。
host -a centos7-bind-1.
Trying "centos7-bind-1"
;; connection timed out; trying next origin
Trying "centos7-bind-1"
;; connection timed out; trying next origin
Trying "centos7-bind-1"
;; connection timed out; trying next origin
Trying "centos7-bind-1"
;; connection timed out; no servers could be reached
1
2
3
4
5
6
7
8
9
DNS查询工具:host命令介绍
用法:host [-a] FQDN [server]
host -l domain [server]
-a参数:显示查询的所有详细信息。
-l参数:如果后面的domain允许allow-transfer时,则列出该domain所管理的所有主机数据。
server参数:这个参数可有可无,当想要利用非 /etc/resolv.conf 内的DNS主机,来查询主机名与 IP 的对应时,就可以利用这个参数了。
host命令使用例(列出该domain所管理的所有主机数据):
host -l example.local 192.168.122.84
Using domain server:
Name: 192.168.122.84
Address: 192.168.122.84#53
Aliases:
example.local name server ns.example.local.
dns.example.local has address 192.168.123.10
ns.example.local has address 192.168.122.84
ns.example.local has IPv6 address ::1
sss.example.local has address 192.168.123.9
www.example.local has address 192.168.123.8
————————————————
版权声明:本文为CSDN博主「xinlongabc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xinlongabc/article/details/47075293