凌峰创科服务平台

CentOS如何配置DNS服务器?

在CentOS系统中配置DNS服务器通常使用BIND(Berkeley Internet Name Domain)软件包,它是目前最流行的DNS服务器实现之一,下面将详细介绍在CentOS 7/8系统中安装、配置和测试DNS服务器的完整步骤。

CentOS如何配置DNS服务器?-图1
(图片来源网络,侵删)

确保系统已更新到最新状态,打开终端,执行以下命令更新系统包:sudo yum update -y(对于CentOS 7)或sudo dnf update -y(对于CentOS 8),安装BIND软件包,使用命令sudo yum install bind bind-utils -ysudo dnf install bind bind-utils -y,安装完成后,启动named服务(BIND的守护进程)并设置开机自启:sudo systemctl start namedsudo systemctl enable named,检查服务状态确保正常运行:sudo systemctl status named

BIND的主要配置文件位于/etc/named.conf,这是全局配置文件,定义了服务器的基本参数,在编辑前建议先备份原文件:sudo cp /etc/named.conf /etc/named.conf.bak,使用vinano编辑器打开文件:sudo vi /etc/named.conf,关键配置项包括:options段落中设置监听地址(如listen-on port 53 { 127.0.0.1; 192.168.1.100; };,其中192.168.1.100为服务器IP)、允许查询的地址(allow-query { localhost; 192.168.1.0/24; };)、数据目录(directory "/var/named";)等,确保dnssec-validation设置为no(如果暂时不启用DNSSEC),并检查recursion yes;是否启用。

接下来创建区域文件,定义正向解析和反向解析区域,假设要配置example.com域的正向解析,首先在/etc/named.conf末尾添加区域声明:

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allow-update { none; };
};

同样添加反向解析区域(假设网段为192.168.1.0/24):

CentOS如何配置DNS服务器?-图2
(图片来源网络,侵删)
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.db";
    allow-update { none; };
};

然后创建区域文件,正向区域文件路径为/var/named/example.com.zone,使用named-checkzone命令生成模板:sudo named-checkzone example.com /dev/null | sudo tee /var/named/example.com.zone,编辑该文件,添加以下内容:

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2025100101  ; Serial
        3600        ; Refresh
        1800        ; Retry
        604800      ; Expire
        86400 )     ; Minimum TTL
    IN  NS  ns1.example.com.
    IN  MX  10 mail.example.com.
ns1 IN  A   192.168.1.100
www IN  A   192.168.1.101
mail IN  A   192.168.1.102

反向区域文件/var/named/192.168.1.db的创建方式类似:sudo named-checkzone 1.168.192.in-addr.arpa /dev/null | sudo tee /var/named/192.168.1.db为:

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2025100101
        3600
        1800
        604800
        86400 )
    IN  NS  ns1.example.com.
100 IN  PTR ns1.example.com.
101 IN  PTR www.example.com.
102 IN  PTR mail.example.com.

确保区域文件权限正确:sudo chown named:named /var/named/example.com.zone /var/named/192.168.1.db,使用named-checkconf检查配置文件语法:sudo named-checkconf,以及named-checkzone检查区域文件:sudo named-checkzone example.com /var/named/example.com.zonesudo named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.db,重启named服务使配置生效:sudo systemctl restart named

配置防火墙允许DNS流量,执行:sudo firewall-cmd --permanent --add-service=dnssudo firewall-cmd --reload,测试DNS解析功能,使用nslookupdig命令,nslookup www.example.comdig @192.168.1.100 www.example.com,反向解析测试:nslookup 192.168.1.101,如果无法解析,检查/var/log/messages日志文件排查错误。

CentOS如何配置DNS服务器?-图3
(图片来源网络,侵删)

以下是常见配置参数说明表格:

参数 位置 说明
listen-on port 53 options 监听的IP地址和端口
allow-query options 允许查询的客户端IP或网段
directory options 区域文件存储目录
zone "域名" named.conf末尾 定义正向解析区域
zone "反向地址.in-addr.arpa" named.conf末尾 定义反向解析区域
file "区域文件名" zone声明 指定区域文件路径
SOA记录 区域文件起始 起始授权机构记录,包含序列号、刷新时间等
NS记录 区域文件 名称服务器记录
A记录 区域文件 主机地址记录
PTR记录 反向区域文件 指针记录,实现IP到域名映射

相关问答FAQs:

  1. 问题:如何配置DNS转发,将无法解析的请求转发到上游DNS服务器?
    解答:在/etc/named.confoptions段落中添加转发配置,

    forwarders { 8.8.8.8; 114.114.114.114; };  
    forward first;  

    第一行指定上游DNS服务器IP,第二行表示优先转发转发器,若转发失败则尝试自行解析,修改后重启named服务即可生效。

  2. 问题:如何为局域网内的其他客户端配置使用此DNS服务器?
    解答:在客户端设备的网络设置中,将DNS服务器地址修改为CentOS DNS服务器的IP(如192.168.1.100),在Linux客户端可编辑/etc/resolv.conf文件,添加nameserver 192.168.1.100;在Windows客户端中,进入“网络和共享中心”→“更改适配器设置”→右键选择网络连接→“属性”→“Internet协议版本4(TCP/IPv4)”→“属性”,手动设置DNS服务器地址,确保客户端能访问DNS服务器的53端口(TCP/UDP)。

分享:
扫描分享到社交APP
上一篇
下一篇