/etc/resolv.conf文件是用于配置DNS(Domain Name System)解析的文件。其中常见的关键字及其作用如下:
nameserver:指定DNS服务器的IP地址,可以指定多个DNS服务器,每行只写一个IP地址。
search:指定DNS向哪些域名服务器查询主机名的域名后缀。
search是一个关键字,用于指定DNS向哪些域名服务器查询主机名的域名后缀。
当我们在主机上使用主机名进行访问时,通常需要指定目标主机所在的完整域名,否则会导致无法直接访问。如果使用的是短名,则需要将其转换为完整的主机名,向DNS服务器查询该主机名对应的IP地址。
例如,在/etc/resolv.conf文件中添加以下内容:
search example.com
这个意思是告诉DNS服务器,在查询不带域名后缀的主机名时,应该自动加上"example.com"后缀进行查询。这样就可以方便地使用主机名进行访问而不需要输入完整的域名。
domain:设置本地主机所在的域名,一般为机构或公司的网址后缀名。
options:设置DNS客户端选项,例如超时时间、是否启用IPv6等。
在/etc/resolv.conf文件中配置以上关键字,可以帮助我们更好地进行主机名解析和DNS查询。
例子如下:
假设我们在Linux系统中需要设置DNS服务器,可以在/etc/resolv.conf文件中添加以下内容:
nameserver 8.8.8.8
nameserver 114.114.114.114
search example.com
options timeout:1 attempts:3 rotate
上述配置实现了以下功能:
指定了两个DNS服务器的IP地址:8.8.8.8和114.114.114.114。当进行主机名解析时,先尝试访问第一个DNS服务器,如果无响应再访问第二个服务器。
设置了查询主机名的域名后缀为example.com,也就是说,在我们使用没有完整域名的主机名进行访问时,DNS会自动加上.example.com作为后缀查询。
设置了客户端选项,包括每次超时时间为1秒、最多重试3次,并且每次按照给出的域名服务器顺序轮流进行查询。
此时,我们在Linux系统中进行主机名解析的操作,将首先查询8.8.8.8,如果未能解析到对应IP地址,则会查询114.114.114.114。同时,如果我们使用不带域名后缀的主机名(例如,“server-01”),则DNS会在查询时自动将其转换为"server-01.example.com"进行查询。