如何在Linux系统上安装和配置DNS服务器?

  • Post category:Linux

安装和配置DNS服务器需要多个步骤,以下是在Linux系统上安装和配置DNS服务器的完整攻略:

1.安装bind9软件包

bind9是Linux上最常用的DNS服务器软件包,使用以下命令可以安装bind9软件包:

sudo apt update
sudo apt install bind9

2.配置DNS服务器

通过修改named.conf文件来配置DNS服务器。 named.conf文件位于/etc/bind/named.conf,可以使用vim或nano等编辑器打开该文件:

sudo vim /etc/bind/named.conf

其中,named.conf文件包括三个主要部分:options、zones和logging。 options包括全局选项,zones包括域名解析信息,logging包括日志选项。这里我们设置一个基本的DNS服务器示例:

options {
    directory "/var/cache/bind";
    dnssec-validation auto;

    // Port 53 is the standard DNS port
    // listen-on-v6 { any; };
    listen-on { any; };
};

zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192";
};

在上面的配置文件中,我们定义了一个主机名为example.com的区域,并定义了一个反向解析域名为1.168.192.in-addr.arpa的区域。

3.创建区域文件

我们需要创建DNS服务器的区域文件。在named.conf文件中,我们定义了example.com和1.168.192.in-addr.arpa这两个区域,因此我们需要创建对应的区域文件。下面是一个示例文件:

sudo vim /etc/bind/db.example.com
$ORIGIN example.com.
$TTL 3D
@       IN      SOA     dns.example.com. root.example.com. (
                        2017042202       ; serial
                        4h               ; refresh
                        1h               ; retry
                        1w               ; expire
                        1D )             ; minimum

; Define the nameservers and contact informations
@               IN      NS      dns.example.com.
@               IN      A       192.168.1.10
dns             IN      A       192.168.1.10
www             IN      A       192.168.1.11

该文件中定义了example.com区域的基本配置,包括SOA(Start of Authority)、NS、A记录、以及指向其他主机的CNAME记录。

同样地,我们为1.168.192.in-addr.arpa示例文件:

sudo vim /etc/bind/db.192
$ORIGIN 1.168.192.in-addr.arpa.
$TTL 3D
@       IN      SOA     dns.example.com. root.example.com. (
                        2017042202 ; serial
                        4h          ; refresh
                        1h          ; retry
                        1w          ; expire
                        1D )        ; minimum
@       IN      NS      dns.example.com.
10      IN      PTR     dns.example.com.
11      IN      PTR     www.example.com.

该文件中定义了1.168.192.in-addr.arpa区域的配置,包括SOA(Start of Authority)、NS、PTR记录,其中PTR记录用于反向解析。

4.重启DNS服务器

修改完named.conf文件和区域文件后,需要重启DNS服务器才能生效。可以使用以下命令启动DNS服务器:

sudo service bind9 restart

至此,DNS服务器已经成功安装和配置完成。

示例说明

  • 示例1:在DNS服务器中添加新的区域和记录
    如果我们需要添加一个新的区域example.net,并定义一些主机名和IP地址的记录,需要在named.conf文件中添加以下内容:
zone "example.net" {
    type master;
    file "/etc/bind/db.example.net";
};

然后创建新的区域文件/etc/bind/db.example.net,示例配置如下:

$ORIGIN example.net.
$TTL 3D
@       IN      SOA     dns.example.net. root.example.net. (
                        2017042202 ; serial
                        4h          ; refresh
                        1h          ; retry
                        1w          ; expire
                        1D )        ; minimum

; Define the nameservers and contact informations
@               IN      NS      dns.example.net.
@               IN      A       192.168.1.10
dns             IN      A       192.168.1.10
ftp             IN      A       192.168.1.11
mail            IN      A       192.168.1.12

添加完新的区域和记录后,需要重启DNS服务器生效:

sudo service bind9 restart
  • 示例2:在Linux中通过nslookup命令使用DNS服务器
    在Linux中,我们可以通过nslookup命令使用DNS服务器进行域名解析。以下是一个示例:
nslookup www.example.com 192.168.1.10

该命令将查询www.example.com的IP地址,并使用IP地址为192.168.1.10的DNS服务器进行域名解析。如果解析成功,则会返回与www.example.com关联的IP地址。