如何在 Debian 11/10 上配置 BIND 主 DNS 服务器 |如何在 Debian 11/10 上配置 BIND 主 DNS 服务器 |如何在 Debian 11/10 上配置 BIND 主 DNS 服务器 |如何在 Debian 11/10 上配置 BIND 主 DNS 服务器 |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

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

如何在 Debian 11/10 上配置 BIND 主 DNS 服务器 |

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

如果您有域名并希望拥有自己的 DNS 服务器来处理域名的名称解析,而不是使用域名注册商的 DNS 服务器,那么您肯定需要设置权威服务器。权威 DNS 服务器用于存储域所有者的 DNS 记录,并向 DNS 解析器提供答案,例如 8.8.8.8 0r 1.1.1.1。

域名系统缩写为 DNS,是一种互联网服务,用于将域名解析为 IP 地址,反之亦然。 BIND(伯克利互联网域名)是一款开源、灵活且功能齐全的 DNS 软件,可用作权威 DNS 服务器。它提供域名到IP地址转换的功能。

本指南将帮助您在 Debian 11/Debian 10 上配置主 BIND DNS 服务器。如果您使用 DHCP,请确保您的服务器具有静态 IP 地址,您必须将其配置为静态以声明您的 IP 不会发生任何更改DNS服务器设置后。

第 1 步 – 安装绑定 DNS 服务器

在开始安装之前,更新 Debian 11/Debian 10 存储库索引始终是安全的。这是通过执行以下命令来实现的。

sudo apt update -y

然后继续安装 BIND DNS 服务器。 Debian 中此 DNS 服务器的名称是 bind9,可在默认基础存储库中找到。使用 APT 命令安装它,如下所示

sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils

步骤 2 – 配置绑定主 DNS 服务器

bind9的配置目录是/etc/bind/。它包含配置文件和区域查找文件。全局配置是/etc/bind/named.conf,不用于本地DNS配置,而是使用/etc/bind/named.conf.local。

创建区域

使用 /etc/bind/named.conf.local 文件,我们将通过使用您选择的编辑器编辑该文件的内容来创建区域。使用 sudo apt install vim 安装 vim 编辑器

sudo vim /etc/bind/named.conf.local

我们将创建前进区和后退区。首先,我们首先为computingforgeeks.local 域的转发区域创建一个条目。将此域名替换为您设置的域名。

zone "computingforgeeks.local" IN { // Domain name
    
      type master; // Primary DNS

     file "/etc/bind/forward.computingforgeeks.local.db"; // Forward lookup file

     allow-update { none; }; // Since this is the primary DNS, it should be none.

};

在上面的文件中,forward.computingforgeeks.local.db 是正向查找区域的名称。

现在让我们为 computingforgeeks.local 创建转发区域。在同一文件中,添加以下行,并相应地替换为前向区域中的参数。

zone "1.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order

     type master; // Primary DNS

     file "/etc/bind/reverse.computingforgeeks.local.db"; //Reverse lookup file
 allow-update { none; }; //Since this is the primary DNS, it should be none.

};

在上面的文件中,1.168.192.in-addr.arpa是反向DNS的名称(如果您的网络是172.16.10那么它将反向到10.16 .172 和reverse.computingforgeeks.local.db是反向 DNS 查找文件。

步骤 3 – 配置绑定 DNS 区域查找文件

查找区域保存正向和反向区域的 DNS 记录。

首先,让我们创建前向区域查找文件。我们将复制名为forward.computingforgeeks.local.db的示例区域查找文件,如下所示。

sudo cp /etc/bind/db.local /etc/bind/forward.computingforgeeks.local.db

请记住,有语法,域名以点 (.) 结尾

此外,还有一些我们需要理解的缩写词。

  • SOA – 授权的开始
  • A – 一条记录
  • MX – 邮件交换
  • NS – 名称服务器
  • CN – 规范名称

编辑区域文件。

sudo vim /etc/bind/forward.computingforgeeks.local.db

根据您设置的域名进行修改。

$TTL    604800
@       IN      SOA     ns1.computingforgeeks.local. root.ns1.computingforgeeks.local. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
;@      IN      NS      localhost.
;@      IN      A       127.0.0.1
;@      IN      AAAA    ::1

;Name Server Information

@        IN      NS      ns1.computingforgeeks.local.

;IP address of Name Server

ns1     IN      A       192.168.1.12

;Mail Exchanger

computingforgeeks.local.   IN     MX   10   mail.computingforgeeks.local.

;A – Record HostName To Ip Address

www     IN       A      192.168.1.13
mail    IN       A      192.168.1.14

;CNAME record

ftp     IN      CNAME   www.computingforgeeks.local.

反向区域查找文件也有缩写词

  • PTR – 指针
  • SOA – 授权的开始

同样在这里,复制 /etc/bind 中名为 reverse.computingforgeeks.local.db 的示例反向区域文件

sudo cp /etc/bind/db.127 /etc/bind/reverse.computingforgeeks.local.db

编辑文件的内容。

sudo vim /etc/bind/reverse.computingforgeeks.local.db

在该文件中,相应地替换域名和IP。

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     computingforgeeks.local. root.computingforgeeks.local. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

;Name Server Information

@       IN      NS     ns1.computingforgeeks.local.
ns1     IN      A       192.168.1.12
;Reverse lookup for Name Server

12      IN      PTR    ns1.computingforgeeks.local.

;PTR Record IP address to HostName

13     IN      PTR    www.computingforgeeks.local.
14     IN      PTR    mail.computingforgeeks.local.

步骤 4 – 检查 BIND DNS 语法

检查创建的配置文件的语法。这里我们使用named-checkconf来检查语法。如果没有错误,命令应该返回到 shell

让我们检查一下创建的正向和反向区域文件的语法。

1.转发区域文件

$ sudo named-checkzone computingforgeeks.local /etc/bind/forward.computingforgeeks.local.db
zone computingforgeeks.local/IN: loaded serial 3
OK

2. 反向区域文件

$ sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/reverse.computingforgeeks.local.db
zone 1.168.192.in-addr.arpa/IN: loaded serial 3
OK

请注意,两次检查的串行输出应该相同,否则请编辑配置。

重新启动并启用 BIND DNS 服务器。

sudo systemctl restart bind9
sudo systemctl enable bind9

检查服务的状态。

$ systemctl status bind9
 bind9.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-08-18 11:29:50 EDT; 7s ago
       Docs: man:named(8)
   Main PID: 10575 (named)
      Tasks: 5 (limit: 4928)
     Memory: 26.0M
        CPU: 73ms
     CGroup: /system.slice/named.service
             └─10575 /usr/sbin/named -f -u bind

Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './DNSKEY/IN': 2001:500:12::d0d#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './NS/IN': 2001:500:12::d0d#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './DNSKEY/IN': 2001:7fd::1#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './NS/IN': 2001:7fd::1#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './DNSKEY/IN': 2001:503:c27::2:30#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './NS/IN': 2001:503:c27::2:30#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './DNSKEY/IN': 2001:500:200::b#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: network unreachable resolving './NS/IN': 2001:500:200::b#53
Aug 18 11:29:50 computingforgeeks.local named[10575]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
Aug 18 11:29:51 computingforgeeks.local named[10575]: resolver priming query complete

步骤 5 – 测试绑定 DNS 服务器

转到任何客户端计算机,在 /etc/resolv.conf 文件中添加新的 DNS 服务器 IP 地址。在本例中,我的 IP 地址是 192.168.1.12

sudo vim /etc/resolv.conf

在文件中添加绑定DNS服务器IP地址

nameserver 192.168.1.12

保存并退出。然后按照下面的步骤进行。

这里有两个选项可以用来验证 DNS 服务器,即 nslookup 或 dig 命令。

使用 dig 命令验证正向查找。

dig www.computingforgeeks.local

如果您得到输出:command not find,您必须在基于 EL 的系统上安装 bind-utils 并在 Debian/Ubuntu 上安装 dnsutils系统。

上述命令的示例输出。

; <<>> DiG 9.16.1-Ubuntu <<>> www.computingforgeeks.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41776
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: e3ed02461aea46d2a51e65556120c239169ed7251d0fb2df (good)
;; QUESTION SECTION:
;www.computingforgeeks.local.	IN	A

;; ANSWER SECTION:
www.computingforgeeks.local. 604800 IN	A	192.168.1.13

;; AUTHORITY SECTION:
computingforgeeks.local. 604800	IN	NS	ns1.computingforgeeks.local.

从上面的输出来看, www.computingforgeeks.local 的答案是 192.168.1.13

确认反向查找:

dig -x 192.168.1.13

示例输出:

; <<>> DiG 9.16.1-Ubuntu <<>> -x 192.168.1.13
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21058
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 1a52341ddbcff799a7011a806120c29ef2fb075582d0e96d (good)
;; QUESTION SECTION:
;13.1.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
13.1.168.192.in-addr.arpa. 604800 IN	PTR	www.computingforgeeks.local.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.	604800	IN	NS	ns1.computingforgeeks.local.

;; ADDITIONAL SECTION:
ns1.computingforgeeks.local. 604800 IN	A	192.168.1.12

;; Query time: 0 msec
;; SERVER: 192.168.1.12#53(192.168.1.12)
;; WHEN: Sat Aug 21 12:08:46 EAT 2021
;; MSG SIZE  rcvd: 157

DNS 服务器反向查找 192.168.1.13 的答案是 www.computingforgeeks.local,192.168.1.14 的答案是 mail.computingforgeeks.local,192.168.1.12 的答案是 >ns1.computingforgeeks.local

从输出结果来看,我们确认正向和反向区域查找工作正常。

第 6 步 – 绑定从 DNS 服务器设置

您的下一个阅读内容可能是如何在 Debian 上配置 Bind Slave DNS 服务器:

  • 在 Debian 上配置从属 BIND DNS 服务器

结论

在上面的指南中,我们成功地在 Debian 11/Debian 10 上配置了主 BIND DNS 服务器。这对于系统管理员很有用,因为他们有通过域名进行通信的应用程序,这有助于消除必须配置的繁琐任务您的应用程序的 IP 发生变化。我希望本指南具有重要意义。

请参阅我们页面上的更多文章。

  • 如何在 Ubuntu 上配置从属 BIND DNS 服务器
  • 在 CentOS 8/RHEL 8 上配置主/从 BIND DNS 服务器
  • 在 Debian 上安装和使用 Guacamole 远程桌面
©2015-2025 Norria support@alaica.com