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/nswitch.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.配置名称服务器

FreeBSD 系统访问 Internet 域名系统 (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

注意

只能使用其中一个搜索和域选项。

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

提示

如果进行配置的机器不是 DNS 服务器,则可以使用 local-unbound(8) 来提高 DNS 查找性能。

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

# sysrc local_unbound_enable="YES"

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

# service local_unbound start