5154

Good Luck To You!

centos架设dns服务器

安装bindutils和named,编辑/etc/named.conf配置主配,添加正向/反向zone,firewallcmd开放5

CentOS架设DNS服务器详细指南

环境准备

系统要求

项目 要求
操作系统 CentOS 7/8
内存 ≥512MB
存储空间 ≥200MB(用于存储区域文件)
网络环境 公网IP或内网固定IP

软件选择

软件组件 版本说明
BIND 11+(CentOS默认版本)
firewalld 系统自带防火墙管理工具

安装BIND服务

安装基础软件包

yum install y bind bindutils

验证安装结果

named v
# 输出示例:BIND 9.11.4RedHat9.11.43.Pkg.el7_9.x86_64

配置文件详解

主配置文件路径

文件路径 说明
/etc/named.conf 主配置文件
/etc/named/ 区域配置文件存放目录
/var/named/ 区域文件和日志文件存放目录

named.conf核心配置

options {
    listenon port 53 { any; };          # 监听所有接口的53端口
    directory       "/var/named";       # 数据文件存放路径
    dumpfile       "/var/named/data/cache_dump.db"; # 缓存转储文件
    statisticsfile "/var/named/data/named_stats.txt"; # 统计文件
    recursion yes;                        # 启用递归查询
    allowquery { any; };                  # 允许所有客户端查询
};

配置正向解析区域

创建区域配置文件

cd /etc/named/
vim example.com.zone  # 创建新区域文件

区域文件内容示例

$TTL 86400       ; 默认生存时间(1天)
@   IN SOA     ns1.example.com. admin.example.com. (
            2023100101 ; 序列号
            3600       ; 刷新时间(1小时)
            1800       ; 重试间隔(30分钟)
            1209600    ; 过期时间(2周)
            86400 )    ; 最小生存时间(1天)
    IN NS      ns1.example.com.
    IN NS      ns2.example.com.
ns1 IN A       192.168.1.1      ; 主DNS服务器IP
ns2 IN A       192.168.1.2      ; 备用DNS服务器IP
www    IN A       192.168.1.100   ; 主机记录
mail   IN A       192.168.1.101   ; 邮件服务器记录

修改主配置文件引用

named.conf中添加:

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allowupdate { none; };
};

配置反向解析区域

创建反向区域文件

vim 1.168.192.inaddr.arpa.zone

反向区域文件内容示例

$TTL 86400
@   IN SOA     ns1.example.com. admin.example.com. (
            2023100101 ; 序列号
            3600       ; 刷新时间
            1800       ; 重试间隔
            1209600    ; 过期时间
            86400 )    ; 最小生存时间
    IN NS      ns1.example.com.
    IN NS      ns2.example.com.
1       IN PTR     ns1.example.com.      ; IP对应主机名映射
2       IN PTR     ns2.example.com.
100     IN PTR     www.example.com.
101     IN PTR     mail.example.com.

修改主配置文件引用

named.conf中添加:

centos架设dns服务器

zone "1.168.192.inaddr.arpa" IN {
    type master;
    file "1.168.192.inaddr.arpa.zone";
    allowupdate { none; };
};

安全策略配置

限制可查询网段

修改named.conf中的allowquery配置:

allowquery { 192.168.1.0/24; 127.0.0.1; } ; 仅允许内网和本地回环地址查询

配置访问控制列表(ACL)

acl "trusted" {
    192.168.1.0/24;
    localhost;
};
options {
    allowquery { trusted; };
};

防火墙配置

开放DNS服务端口

firewallcmd permanent addservice=dns
firewallcmd reload

验证端口状态

firewallcmd listall | grep dns
# 输出示例:services: dns

服务管理与优化

设置开机自启

systemctl enable named

查看服务状态

systemctl status named
# 应显示:active (running)

性能优化参数

named.confoptions部分添加:

centos架设dns服务器

forwarders { 8.8.8.8; 8.8.4.4; };  # 指定上游DNS服务器
maxcachesize 50%;                # 缓存占用内存比例

测试验证

使用dig命令测试

dig @127.0.0.1 www.example.com    # 测试正向解析
dig @127.0.0.1 x 192.168.1.100  # 测试反向解析

预期输出示例

;; ANSWER SECTION:
www.example.com        IN      A       192.168.1.100
;; ADDITIONAL SECTION:
...

常见问题排查

症状 可能原因 解决方案
无法解析新记录 区域文件未重新加载 rndc reload
反向解析失败 PTR记录配置错误 检查反向区域文件语法
外部网络无法访问 防火墙未开放端口 firewallcmd addservice=dns
递归查询超时 未配置forwarders 添加上游DNS服务器配置

相关问题与解答

Q1:如何为现有域名添加新的子域名记录?

A1

  1. 编辑对应的区域文件(如example.com.zone
  2. 添加新记录示例:
    shop    IN A       192.168.1.102   ; 新增子域名记录
    api     IN A       192.168.1.103   ; API服务器记录
  3. 重新加载配置:
    rndc reload
  4. 验证:
    dig @localhost shop.example.com

Q2:如何配置DNS服务器的转发功能?

A2

centos架设dns服务器

  1. named.confoptions部分添加forwarders配置:
    forwarders { 114.114.114.114; };  # 使用阿里公共DNS作为转发器
  2. 禁用递归查询(可选):
    recursion no;
  3. 重新加载服务:
    rndc restart
  4. 此时服务器将作为转发器,把非本域查询请求转发到指定

发表评论:

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

«    2025年6月    »
1
2345678
9101112131415
16171819202122
23242526272829
30
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.