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 部分如下: .. code:: shell-session hosts: files dns 例如,在使用 `nscd(8) `__ 服务时。可以通过保留以下行来更改优先顺序: .. code:: shell-session hosts: files cache dns 7.6.1.本地地址 -------------- **/etc/hosts** 文件是一个简单的文本数据库,提供主机名与 IP 地址的映射。可将通过局域网连接的本地计算机的条目添加到该文件中,以实现简单的命名目的,而无需设置 DNS 服务器。此外,\ **/etc/hosts** 还可用于提供互联网名称的本地记录,从而减少为常用名称查询外部 DNS 服务器的需要。 例如,如果要在本地环境中创建一个 `www/gitlab-ce `__ 实例,可以在 **/etc/hosts** 文件中添加如下内容: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session 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** 文件如下: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session 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 查找性能。 要在启动时启用它,请执行以下命令: .. code:: shell-session # sysrc local_unbound_enable="YES" 要启动 `local-unbound(8) `__ 服务,请执行以下命令: .. code:: shell-session # service local_unbound start