在 CentOS 8 上配置 DNS 服务器在 CentOS 8 上配置 DNS 服务器在 CentOS 8 上配置 DNS 服务器在 CentOS 8 上配置 DNS 服务器
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 CentOS 8 上配置 DNS 服务器

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在本文中,我将向您展示如何在 CentOS 8 上配置 BIND 9 DNS 服务器。所以,让我们开始吧。

网络拓扑结构:

图1:本文的网络拓扑

这里,我将配置一台 CentOS 8 机器作为 DNS 服务器。 CentOS 8 机器的静态 IP 地址为 192.168.20.20。网络上的其他计算机将能够访问 DNS 服务器来解析域名。

设置静态 IP 地址:

如果要设置 DNS 服务器,则必须在 CentOS 8 计算机上设置静态 IP 地址。要在 CentOS 8 上设置静态 IP 地址,请查看我的文章在 CentOS 8 上配置静态 IP。

在 CentOS 8 上安装 DNS 服务器:

BIND 9 可在 CentOS 8 的官方软件包存储库中找到。因此,安装非常容易。

首先,使用以下命令更新 DNF 软件包存储库缓存:

$ sudo dnf makecache

现在,使用以下命令安装 BIND 9:

$ sudo dnf install bind

要确认安装,请按Y,然后按。

应安装 BIND 9。

配置 BIND 9 DNS 服务器:

BIND的主要配置是/etc/named.conf。您可以在 /var/named/ 目录中添加自定义 DNS 数据库。创建 DNS 数据库后,您可以在 /etc/named/ 目录中添加自定义区域文件,并将这些区域文件包含在 /etc/named.conf 配置文件中。这基本上就是配置 BIND 9 DNS 服务器的方式。

让我们为 linux.local 域名创建一个 DNS 数据库。

在/var/named/目录中创建一个新文件db.linux.local,如下所示:

$ sudo vim /var/named/db.linux.local

现在,在 db.linux.local 文件中输入以下行并保存该文件。

$TTL 1d
$ORIGIN linux.local.
@    IN   SOA  ns   root (
          2020031201 ; Serial
          12h        ; Refresh
          15m        ; Retry
          3w         ; Expire
          2h         ; Minimum
)
@    IN   A    192.168.20.20
@    IN   NS   ns
ns   IN   A    192.168.20.20
@    IN   MX   10   mail
mail IN   A    192.168.20.20
help IN   A    192.168.20.111
support    IN   A    192.168.20.112
www  IN   A    192.168.10.12
router     IN   A    192.168.2.1
ftp  IN   CNAME www

添加linux.local域的DNS数据库后,您可以使用以下命令检查文件语法是否正确:

$ sudo named-checkzone linux.local /var/named/db.linux.local

正如您所看到的,没有语法错误。如果有,您将看到相应的错误消息。

现在,在 /etc/named/ 目录中为 linux.local 域创建一个区域文件 linux.local.zones,如下所示:

$ sudo vim /etc/named/linux.local.zones

现在,在 linux.local.zones 文件中输入以下行。

zone "linux.local" IN {
    type master;
    file "db.linux.local";
};

现在,编辑 /etc/named.conf 文件,如下所示:

$ sudo vim /etc/named.conf

首先,您必须将您的网络子网添加到允许查询。否则,网络中的任何计算机都将无法使用 DNS 服务器。

网络子网为192.168.20.0/24。所以,这就是我在那里添加的内容。

您还必须添加您配置为 DNS 服务器的 CentOS 8 计算机的 IP 地址作为监听地址。就我而言,它是192.168.20.20。所以,我已经将其添加到那里。

最后,在 /etc/named.conf 末尾包含 /etc/named/ 目录中的 linux.local.zones 文件文件包含以下行。

include "/etc/named/linux.local.zones";

现在,使用以下命令启动 named 服务:

$ sudo systemctl start named

如您所见,named 服务正在运行。

$ sudo systemctl status named

另外,将命名服务添加到CentOS 8的系统启动中。这样,DNS服务器将在启动时自动启动。

$ sudo systemctl enable named

如果在启动 named 服务后对 DNS 服务器配置文件进行任何更改,则必须重新启动 named 服务才能使更改生效。

要重新启动 named 服务,请运行以下命令:

$ sudo systemctl restart named

测试 DNS 服务器:

您可以使用 dig 测试 DNS 名称服务器。

要检查 DNS 服务器是否正在侦听传出网络接口,如下所示:

$ dig @192.168.20.20 linux.local any

伟大的! DNS 服务器可从 CentOS 8 的传出网络接口访问。

CentOS 8 计算机也可以在本地访问 DNS 名称服务器。

$ dig @localhost linux.local any

我还可以解析 www.linux.local,如下面的屏幕截图所示。

$ dig @127.0.0.1 www.linux.local

更改网络接口的DNS服务器地址:

现在,您可以将网络接口的 DNS 服务器地址更改为默认使用本地 DNS 服务器。请查看我的文章在 CentOS 8 上配置静态 IP,了解如何执行此操作的详细说明。

如您所见,BIND 可以解析 Internet 域名。

BIND还可以解析本地配置的域linux.local

配置防火墙:

现在,要允许 DNS 请求通过防火墙,请使用以下命令打开 DNS 服务器端口 53:

$ sudo firewall-cmd --add-service=dns --permanent

要使更改生效,请运行以下命令:

$ sudo firewall-cmd --reload

从其他计算机测试 DNS 服务器:

我已在同一网络子网上配置了一台 Windows 10 计算机,以使用我刚刚在 CentOS 8 计算机上配置的 DNS 服务器。

如您所见,linux.local 子域的 DNS 解析有效。

$ nslookup ns.linux.local
$ nslookup support.linux.local
$ nslookup www.linux.local
$ nslookup mail.linux.local

这就是在 CentOS 8 上配置 BIND 9 DNS 服务器的方法。感谢您阅读本文。

©2015-2025 Norria support@norria.com