在 CentOS 8 上配置 DNS 服务器
在本文中,我将向您展示如何在 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 软件包存储库缓存:
现在,使用以下命令安装 BIND 9:
要确认安装,请按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,如下所示:
现在,在 db.linux.local 文件中输入以下行并保存该文件。
$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数据库后,您可以使用以下命令检查文件语法是否正确:
正如您所看到的,没有语法错误。如果有,您将看到相应的错误消息。
现在,在 /etc/named/ 目录中为 linux.local 域创建一个区域文件 linux.local.zones,如下所示:
现在,在 linux.local.zones 文件中输入以下行。
type master;
file "db.linux.local";
};
现在,编辑 /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 文件文件包含以下行。
现在,使用以下命令启动 named 服务:
如您所见,named 服务正在运行。
另外,将命名服务添加到CentOS 8的系统启动中。这样,DNS服务器将在启动时自动启动。
如果在启动 named 服务后对 DNS 服务器配置文件进行任何更改,则必须重新启动 named 服务才能使更改生效。
要重新启动 named 服务,请运行以下命令:
测试 DNS 服务器:
您可以使用 dig 测试 DNS 名称服务器。
要检查 DNS 服务器是否正在侦听传出网络接口,如下所示:
伟大的! DNS 服务器可从 CentOS 8 的传出网络接口访问。
CentOS 8 计算机也可以在本地访问 DNS 名称服务器。
我还可以解析 www.linux.local,如下面的屏幕截图所示。
更改网络接口的DNS服务器地址:
现在,您可以将网络接口的 DNS 服务器地址更改为默认使用本地 DNS 服务器。请查看我的文章在 CentOS 8 上配置静态 IP,了解如何执行此操作的详细说明。
如您所见,BIND 可以解析 Internet 域名。
BIND还可以解析本地配置的域linux.local
配置防火墙:
现在,要允许 DNS 请求通过防火墙,请使用以下命令打开 DNS 服务器端口 53:
要使更改生效,请运行以下命令:
从其他计算机测试 DNS 服务器:
我已在同一网络子网上配置了一台 Windows 10 计算机,以使用我刚刚在 CentOS 8 计算机上配置的 DNS 服务器。
如您所见,linux.local 子域的 DNS 解析有效。
这就是在 CentOS 8 上配置 BIND 9 DNS 服务器的方法。感谢您阅读本文。