7.6.DNS

DNS 可以理解为一本电话簿,其中将 IP 地址与主机名相互关联。

有三个文件负责管理 FreeBSD 系统如何与 DNS 进行交互。这三个文件是 hosts(5)resolv.conf(5)nsswitch.conf(5)

除非在 /etc/nsswitch.conf 文件中另有说明,FreeBSD 将首先查看 /etc/hosts 文件中的地址,然后查看 /etc/resolv.conf 文件中的 DNS 信息。

注意

nsswitch.conf(5) 文件指定了 nsdispatch(名称服务切换调度器)应如何运行。

在默认情况下,/etc/nsswitch.conf 文件中的 hosts 部分如下所示:

hosts: files dns

例如,在使用 nscd(8) 服务时,可以通过将该行更改为如下所示,来更改优先级顺序:

hosts: files cache dns

7.6.1. 本地地址

/etc/hosts 文件是一个简单的文本数据库,用于提供主机名到 IP 地址的映射。可以将通过局域网连接的本地计算机的条目添加到此文件中,以便简化命名,而无需设置 DNS 服务器。此外,/etc/hosts 还可以用于提供互联网名称的本地记录,从而减少查询外部 DNS 服务器的需求,特别是对于常访问的名称。

例如,如果在本地环境中有一个 www/gitlab-ce 的本地实例,可以将其添加到 /etc/hosts 文件中,如下所示:

192.168.1.150 git.example.com git

7.6.2. 配置 Nameserver

FreeBSD 系统如何访问互联网域名系统(DNS)由 resolv.conf(5) 控制。

/etc/resolv.conf 中最常见的条目有:

nameserver

解析器应该查询的名称服务器的 IP 地址。服务器按顺序查询,最多可以列出三个。

search

主机名查找的搜索列表。通常由本地主机名的域决定。

domain

本地域名。

典型的 /etc/resolv.conf 文件如下所示:

search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30

注意

选项 searchdomain 只能使用其中一个。

使用 DHCP 时,dhclient(8) 通常会根据从 DHCP 服务器接收到的信息重写 /etc/resolv.conf

注意

如果当前正在配置的这台机器 不是 DNS 服务器,可以使用 local-unbound(8) 来提升 DNS 查询性能。

要在系统启动时启用它,请执行以下命令:

# sysrc local_unbound_enable="YES"

要启动 local-unbound(8) 服务,请执行以下命令:

# service local_unbound start

最后更新于