Linux 安装 DNS 服务详细指南
一、准备工作
在开始安装 DNS 服务之前,需要确保系统已满足一些基本要求,确认你的 Linux 发行版,常见的如 Ubuntu、CentOS 等,因为不同发行版的包管理工具和软件源有所不同,要拥有管理员权限,以便进行软件安装和系统配置操作。
二、安装 DNS 服务器软件(以 BIND 为例)
(一)Ubuntu 系统安装步骤
步骤 | 命令 | 说明 |
更新软件包列表 | sudo aptget update |
从软件源获取最新的软件包信息,确保安装的是最新版本的软件 |
安装 BIND 9 软件包 | sudo aptget install bind9 bind9utils bind9doc |
bind9 是核心的 DNS 服务器软件,bind9utils 包含一些有用的工具,bind9doc 是相关文档 |
(二)CentOS 系统安装步骤
步骤 | 命令 | 说明 |
安装 EPEL 源(如果未安装) | sudo yum install epelrelease |
EPEL(Extra Packages for Enterprise Linux)源提供额外的软件包,其中可能包含 BIND 的更新版本 |
安装 BIND 软件包 | sudo yum install bind bindutils |
bind 是主程序,bindutils 包含管理工具如nslookup 、dig 等 |
三、配置 DNS 区域文件
(一)正向解析区域(example.com)
1、创建区域文件目录(如果不存在):sudo mkdir p /etc/bind/zones
2、创建正向解析区域文件:使用文本编辑器(如 vi 或 nano),在/etc/bind/zones
目录下创建名为example.com.zone
的文件。
3、编辑区域文件内容示例如下:
$TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.com. ns1 IN A 192.168.1.2 www IN A 192.168.1.3
上述文件中,$TTL
指定默认生存时间,SOA
记录定义了区域的起始授权机构信息,NS
记录指明了名称服务器,A
记录用于将域名映射到 IP 地址。
(二)反向解析区域(192.168.1.0/24)
1、创建反向解析区域文件:在/etc/bind/zones
目录下创建名为1.168.192.inaddr.arpa.zone
的文件。
2、编辑区域文件内容示例如下:
$TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.com. ns1 IN A 192.168.1.2
这里的配置与正向解析类似,只是针对 IP 地址到域名的反向解析。
四、配置 BIND 主配置文件
编辑 BIND 的主配置文件/etc/bind/named.conf.local
(Ubuntu)或/etc/named.conf
(CentOS),添加对新创建的区域文件的配置信息。
配置文件内容片段 | 说明 |
zone “example.com” { type master; file “/etc/bind/zones/example.com.zone”;}; | 配置正向解析区域,指定区域类型为 master(主服务器),并关联区域文件路径 |
zone “1.168.192.inaddr.arpa” { type master; file “/etc/bind/zones/1.168.192.inaddr.arpa.zone”;}; | 配置反向解析区域,同样指定为主服务器类型并关联区域文件路径 |
五、启动和测试 DNS 服务
(一)启动 BIND 服务
在 Ubuntu 系统中使用命令:sudo systemctl start bind9
在 CentOS 系统中使用命令:sudo systemctl start named
(二)测试 DNS 解析
可以使用nslookup
或dig
命令来测试 DNS 解析是否正常。
nslookup www.example.com
:如果配置正确,应该返回www.example.com
对应的 IP 地址(即上面配置中的 192.168.1.3)。
nslookup 192.168.1.3
:应该返回域名www.example.com
。
六、常见问题与解答
问题一:DNS 解析不成功,提示“server failure”错误怎么办?
解答:首先检查 BIND 服务是否正常运行,使用命令sudo systemctl status bind9
(Ubuntu)或sudo systemctl status named
(CentOS)查看服务状态,如果服务未运行,尝试重启服务,然后检查区域文件的语法是否正确,可以使用namedcheckconf
(BIND 9)或namedcheckzone
(BIND 8及以下版本)命令来检查区域文件的语法错误。namedcheckzone example.com /etc/bind/zones/example.com.zone
,如果存在语法错误,根据错误提示修正区域文件内容,然后再次测试,还要检查防火墙设置,确保允许 DNS 服务的端口(通常是 53)通过,可以使用命令sudo ufw allow 53/tcp
(Ubuntu)或firewallcmd permanent addport=53/tcp
(CentOS)来开放端口。
问题二:如何设置 DNS 服务器的转发器?
解答:在 BIND 的主配置文件中可以设置转发器,在 Ubuntu 的/etc/bind/named.conf.options
文件中添加类似以下内容:
forwarders { 8.8.8.8; 8.8.4.4; };
这将配置 BIND 服务器将无法解析的查询转发到 Google 的公共 DNS 服务器(IP 地址为 8.8.8.8 和 8.8.4.4),保存配置文件后,重新启动 BIND 服务使设置生效,这样,当本地区域无法回答某个查询时,DNS 服务器就会代表客户端向转发器发送查询请求,直到得到答案,然后将结果返回给客户端。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/188297.html