5154

Good Luck To You!

dns服务器设置centos

CentOS上设置DNS服务器,需安装BIND软件包,编辑配置文件并启动服务

CentOS系统下DNS服务器设置指南

安装BIND软件包

使用YUM安装BIND及相关工具

在CentOS系统中,可通过YUM包管理器安装BIND DNS服务器软件,执行以下命令进行安装:

sudo yum install y bind bindutils

该命令将安装BIND主程序以及常用的DNS工具,如dignslookup等,安装完成后,系统会自动创建必要的目录结构和配置文件。

验证安装结果

安装完成后,可通过以下命令检查BIND服务状态:

sudo systemctl status named

若显示服务已启动且启用,则表示安装成功,默认情况下,BIND配置文件位于/etc/named.conf,区域文件存储在/var/named/目录下。


配置主配置文件(named.conf)

修改监听地址和端口

默认配置中,BIND仅监听本地回环地址(127.0.0.1),需修改为监听所有IP地址:

dns服务器设置centos

options {
  listenon port 53 { 127.0.0.1; };
+   listenon port 53 { any; };
    listenonv6 port 53 { ::1; };
    ...
};

允许查询的客户端范围

根据需求设置允许访问的IP范围:

allowquery {
  localhost;
+   any;
};

注意:生产环境中建议限制为特定IP或子网,例如allowquery { 192.168.1.0/24; }

其他关键配置项

配置项 说明
recursion 设置为no以禁用递归查询(权威DNS服务器推荐)
dnssecenable 启用DNSSEC安全扩展(建议开启)
forwarders 指定上游DNS服务器IP(用于转发非本域查询)
allowtransfer 指定允许区域传输的IP(从服务器同步数据时需要)

创建正向解析区域

定义域名区域

编辑/etc/named.conf,添加以下内容:

zone "example.com" {
    type master;
    file "/var/named/example.com.zone";
};

编写区域文件

/var/named/目录下创建example.com.zone如下:

$TTL 86400
@    IN    SOA     ns1.example.com. admin.example.com. (
                    2023091101      ; Serial
                    3600           ; Refresh
                    1800           ; Retry
                    604800         ; Expire
                    86400          ; Minimum TTL
)
@        IN    NS      ns1.example.com.
ns1      IN    A       192.168.1.10  ; DNS服务器IP
www      IN    A       192.168.1.20  ; Web服务器IP

配置反向解析区域(可选)

定义反向解析区域

named.conf中添加:

dns服务器设置centos

zone "1.168.192.inaddr.arpa" {
    type master;
    file "/var/named/1.168.192.zone";
};

编写反向区域文件

创建/var/named/1.168.192.zone示例:

$TTL 86400
@    IN    SOA     ns1.example.com. admin.example.com. (
                    2023091101      ; Serial
                    3600           ; Refresh
                    1800           ; Retry
                    604800         ; Expire
                    86400          ; Minimum TTL
)
@        IN    NS      ns1.example.com.
10       IN    PTR    ns1.example.com.
20       IN    PTR    www.example.com.

启动与测试服务

启动并设置自启

sudo systemctl start named
sudo systemctl enable named

测试DNS解析

(1) 正向解析测试

dig www.example.com @192.168.1.10

(2) 反向解析测试

dig x 192.168.1.20 @192.168.1.10

(3) Windows客户端测试

  • 修改网卡DNS服务器地址为CentOS服务器IP
  • 使用ipconfig /flushdns刷新缓存
  • 通过ping www.example.com验证解析

常见问题与解决方案

问题1:DNS查询超时

原因:防火墙未开放53端口或SELinux限制。
解决方案

# 开放防火墙端口
sudo firewallcmd permanent addport=53/tcp
sudo firewallcmd permanent addport=53/udp
sudo firewallcmd reload
# 设置SELinux策略
sudo setsebool P named_write_master_zones on

问题2:区域文件语法错误

原因:区域文件格式不符合规范。
解决方案

# 检查语法错误
sudo namedcheckconf /etc/named.conf
sudo namedcheckzone example.com /var/named/example.com.zone

安全加固建议

措施 说明
限制allowquery范围 仅允许可信网络访问DNS服务
禁用递归查询 权威服务器无需递归查询(设置recursion no;
启用DNSSEC 通过签名防止DNS欺骗(需生成密钥并签名区域)
配置访问控制列表(ACL) 细化不同客户端的查询权限

日志与监控

配置日志文件

named.conflogging部分添加:

logging {
    channel default_log {
        file "/var/named/data/named.log" versions 3 size 5m;
        severity info;
        printtime yes;
        printseverity yes;
        printcategory yes;
    };
    category default { default_log; };
};

查看日志内容

sudo tail f /var/named/data/named.log

相关问题与解答

问题1:如何将CentOS DNS服务器配置为局域网的缓存服务器?

解答:需修改named.conf中的recursionyes,并添加上游DNS服务器:

dns服务器设置centos

options {
    recursion yes;
    forwarders { 8.8.8.8; 8.8.4.4; };
};

同时确保allowquery包含局域网IP范围。

问题2:如何实现主从DNS架构?

解答

  1. 在主服务器named.conf中添加从服务器IP到allowtransfer
    allowtransfer { 192.168.1.20; };
  2. 在从服务器创建相同的区域配置,并将type改为hint
    zone "example.com" {
        type slave;
        masters { 192.168.1.10; };
        file "/var/named/example.com.zone

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.