RESOLV.CONF - Linux手册页

时间:2019-08-20 18:01:50  来源:igfitidea点击:

Linux程序员手册 第5部分
更新日期: 2020-08-13

名称

resolv.conf-解析程序配置文件

语法

/etc/resolv.conf

说明

解析程序是C库中的一组例程,这些例程提供对Internet域名系统(DNS)的访问。解析器配置文件包含信息,这些信息由解析器例程在首次被进程调用时读取。该文件设计为易于阅读,并包含关键字列表,这些关键字的值可提供各种类型的解析程序信息。该配置文件被认为是DNS信息的可信来源(例如,将返回DNSSEC AD位信息,而无需修改该信息)。

如果此文件不存在,则仅查询本地计算机上的名称服务器,并且搜索列表包含根据主机名确定的本地域名。

不同的配置选项是:

nameserverName server IP address
解析程序应查询的名称服务器的Internet地址,它是RFC 2373的IPv4地址(点符号)或冒号(可能还有点)符号的IPv6地址。最多MAXNS(当前为3,请参阅)名称服务器可能会列出,每个关键字一个。如果有多个服务器,则解析器库按列出的顺序查询它们。如果不存在名称服务器条目,则默认为使用本地计算机上的名称服务器。 (使用的算法是尝试使用名称服务器,如果查询超时,请尝试下一个,直到名称服务器用尽,然后重复尝试所有名称服务器,直到进行最大重试。)
searchSearch list for host-name lookup.
默认情况下,搜索列表包含一个条目,即本地域名。它是由gethostname(2)返回的本地主机名确定的;本地域名是第一个aq.aq之后的所有内容。最后,如果主机名不包含aq.aq,则将根域假定为本地域名。
可以通过在搜索关键字之后列出所需的域搜索路径(用空格或制表符分隔名称)来更改此名称。依次使用搜索路径的每个组件尝试其中点数少于ndots(默认值为1)的解析器查询,直到找到匹配项为止。对于具有多个子域的环境,请阅读下面的选项ndots:n以避免中间人攻击和根dns服务器的不必要流量。请注意,如果列出的域的服务器不在本地,则此过程可能会很慢,并且会产生大量的网络流量,并且如果没有一个域的服务器可用,则查询将超时。
如果有多个搜索指令,则仅使用最后一个实例的搜索列表。
在glibc 2.25和更早版本中,搜索列表限于六个域,总共256个字符。从glibc 2.26开始,搜索列表是无限的。
域伪指令是仅处理一个搜索列表条目的搜索伪指令的过时名称。
sortlist
此选项允许对由gethostbyname(3)返回的地址进行排序。排序列表由IP地址网络掩码对指定。网络掩码是可选的,默认为网络的自然网络掩码。 IP地址和可选网络对之间用斜杠分隔。最多可以指定10对。这是一个例子:
排序列表130.155.160.0/255.255.240.0 130.155.0.0
options
Options allows certain internal resolver variables to be modified. The syntax is
选项选项...

其中option是以下之一:

debug
在_res.options中设置RES_DEBUG(仅在使用调试支持构建glibc时有效;请参见resolver(3))。
ndots:n
设置阈值,该阈值用于在进行初始绝对查询之前必须在给r​​es_query(3)(请参阅resolver(3))的名称中显示的点数。 n的默认值为1,这意味着如果名称中包含点,则在将任何搜索列表元素附加到该名称之前,将首先尝试使用该名称作为绝对名称。此选项的值默认为15。
timeout:n
设置解析器在通过其他名称服务器重试查询之前等待远程名称服务器响应的时间。这可能不是任何解析程序API调用花费的总时间,并且不能保证单个解析程序API调用映射到单个超时。以秒为单位,默认值为RES_TIMEOUT(当前为5,请参见)。此选项的值默认为30。
attempts:n
设置解析器在放弃并将错误返回给调用应用程序之前将查询发送到其名称服务器的次数。默认值为RES_DFLRETRY(当前为2,请参见)。此选项的值默认为5。
rotate
在_res.options中设置RES_ROTATE,这将导致从列出的名称服务器中轮流选择名称服务器。这具有将查询负载分散在所有列出的服务器之间的效果,而不是让所有客户端每次都首先尝试第一个列出的服务器。
no-check-names
在_res.options中设置RES_NOCHECKNAME,这将禁用对传入主机名和邮件名的现代BIND检查,以检查下划线(_),非ASCII或控制字符等无效字符。
inet6
在_res.options中设置RES_USE_INET6。这样的效果是,在gethostbyname(3)函数内部的A查询之前先尝试AAAA查询,如果找不到AAAA记录但存在A记录集,则以IPv6"隧道形式"映射IPv4响应。从glibc 2.25开始,不建议使用此选项;应用程序应使用getaddrinfo(3),而不是gethostbyname(3)。
ip6-bytestring(since glibc 2.3.4 to 2.24)
在_res.options中设置RES_USEBSTRING。这导致使用RFC 2673中描述的位标签格式进行反向IPv6查找;如果未设置此选项(默认设置),则使用半字节格式。该选项在glibc 2.25中已删除,因为它依赖于从未在Internet上部署的向后不兼容的DNS扩展。
ip6-dotint/no-ip6-dotint(glibc 2.3.4 to 2.24)
在_res.options中清除/设置RES_NOIP6DOTINT。如果清除此选项(ip6-dotint),则在(不建议使用)ip6.int区域中进行反向IPv6查找;设置此选项后(no-ip6-dotint),默认情况下会在ip6.arpa区域中进行反向IPv6查找。这些选项在2.24之前的glibc版本中可用,其中默认值为no-ip6-dotint。由于ip6-dotint支持很久以前就不再在Internet上可用,因此这些选项已在glibc 2.25中删除。
edns0(since glibc 2.6)
在_res.options中设置RES_USE_EDNSO。这样可以支持RFC 2671中描述的DNS扩展。
single-request(since glibc 2.10)
在_res.options中设置RES_SNGLKUP。默认情况下,从2.9版开始,glibc并行执行IPv4和IPv6查找。某些设备DNS服务器无法正确处理这些查询,并使请求超时。此选项禁用该行为,并使glibc顺序执行IPv6和IPv4请求(以解决过程变慢的代价)。
single-request-reopen(since glibc 2.9)
在_res.options中设置RES_SNGLKUPREOP。解析程序对A和AAAA请求使用相同的套接字。某些硬件错误地仅发送回一个答复。发生这种情况时,客户端系统将坐下来等待第二次答复。启用此选项将更改此行为,以便如果未正确处理来自同一端口的两个请求,它将在发送第二个请求之前关闭套接字并打开一个新请求。
no-tld-query(since glibc 2.14)
在_res.options中设置RES_NOTLDQUERY。此选项使res_nsearch()不会尝试解析非限定名称,就好像它是顶级域(TLD)。如果站点将``localhost''作为TLD,而不是在搜索列表的一个或多个元素上具有localhost,则此选项可能导致问题。如果未设置RES_DEFNAMES或RES_DNSRCH,则此选项无效。
use-vc(since glibc 2.14)
在_res.options中设置RES_USEVC。此选项强制将TCP用于DNS解析。
no-reload(since glibc 2.26)
在_res.options中设置RES_NORELOAD。此选项禁用自动重新加载已更改的配置文件。

通过将环境变量LOCALDOMAIN设置为以空格分隔的搜索域列表,可以在每个进程的基础上覆盖系统的resolv.conf文件的搜索关键字。

通过将环境变量RES_OPTIONS设置为以空格分隔的解析器选项列表,可以在每个进程的基础上修改系统的resolv.conf文件的options关键字,如上面在选项下所述。

关键字和值必须出现在一行上,关键字(例如,名称服务器)必须以该行开头。该值位于关键字之后,以空格分隔。

第一列中包含分号(;)或井号(#)的行将被视为注释。

文件

/etc/resolv.conf

另外参见

gethostbyname(3),resolver(3),host.conf(5),hosts(5),nsswitch.conf(5),主机名(7),命名(8)

BIND的名称服务器操作指南

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/