在 Linux 上搭建 DNS 服务器的步骤如下:
安装 DNS 服务器软件。常用的 DNS 服务器软件有 BIND 和 dnsmasq 等。您可以通过包管理器来安装这些软件。例如,对于 Ubuntu 系统,可以使用以下命令安装 BIND:
sql
Copy code
sudo apt-get update
sudo apt-get install bind9
配置 DNS 服务器。在配置文件中指定域名解析规则。配置文件位置因 DNS 服务器软件而异。对于 BIND,其默认配置文件为 /etc/bind/named.conf。对于 dnsmasq,其默认配置文件为 /etc/dnsmasq.conf。
在配置文件中,您需要指定 DNS 服务器的名称、IP 地址、域名解析规则等。下面是 BIND 的示例配置:
bash
Copy code
options {
? ?directory "/var/cache/bind";
? ?forwarders {
? ? ? 8.8.8.8;
? ? ? 8.8.4.4;
? ?};
};
zone "example.com" {
? ?type master;
? ?file "/etc/bind/zones/db.example.com";
};
在上面的配置文件中,options 部分指定了 DNS 服务器的目录和转发器,而 zone 部分指定了域名解析规则,例如将 example.com 域名解析到 /etc/bind/zones/db.example.com 中。
创建域名解析规则文件。在上述示例中,您需要创建一个名为 db.example.com 的文件来存储域名解析规则。该文件位置为 /etc/bind/zones/db.example.com。该文件的格式与 Windows 上的 hosts 文件类似,您可以在其中指定域名和 IP 地址的映射关系。例如:
less
Copy code
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
? ? ? ? ? ? ? ? ?3 ; Serial
? ? ? ? ? ? ? ? ?604800 ; Refresh
? ? ? ? ? ? ? ? ?86400 ; Retry
? ? ? ? ? ? ? ? ?2419200 ; Expire
? ? ? ? ? ? ? ? ?604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
ns1 IN A 192.168.1.1
ns2 IN A 192.168.1.2
www IN A 192.168.1.100
mail IN A 192.168.1.101
在上面的示例中,$TTL 指定了缓存时间,@ 表示该域名本身,IN 表示 Internet 类型,SOA 是 Start of Authority 记录,NS 是 Name Server 记录,A 是 Address 记录。在下面的示例中,将 ns1 和 ns2 域名解析到 192.168.1.1 和 192.168.1.2,将 www 和 mail 域名解析到 192.168.1.100 和 192.168.1.101。
启动 DNS 服务器。您可以使用以下命令启动 BIND:
sql
Copy code
sudo service bind9 start