5154

Good Luck To You!

DNS服务器搭建centos

CentOS搭建DNS需安装BIND,配named.conf及区域文件,开防火墙53端口,启named服务

CentOS系统下DNS服务器搭建完整指南

DNS服务器

DNS(Domain Name System)是互联网的核心服务之一,负责将域名解析为IP地址,在CentOS系统上搭建DNS服务器可满足内网环境、私有网络或测试场景需求,本文以CentOS 8为例,使用BIND(Berkeley Internet Name Domain)软件实现DNS服务搭建。

准备工作:检查系统环境

检查项 要求
操作系统 CentOS 7或以上版本(推荐CentOS 8)
网络配置 静态IP地址,关闭NetworkManager服务(可选)
防火墙规则 开放TCP/UDP 53端口
SELinux 设置为宽松模式或禁用(建议保持启用但允许BIND访问)

执行命令

# 查看BIND是否已安装
rpm qa | grep bind
# 更新系统(确保软件包最新)
dnf update y

安装BIND DNS服务

安装软件包

dnf install y bind bindutils bindchroot
  • bind: 核心DNS服务程序
  • bindutils: 包含dignslookup等工具
  • bindchroot: 提供Chroot隔离环境提升安全性

启动与自启设置

# 启动BIND服务
systemctl start named
# 设置开机自启
systemctl enable named

配置BIND主配置文件named.conf

主配置文件位于/etc/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; };                 # 允许所有客户端查询
};

安全加固(可选)

// 限制非可信网络的递归查询
allowquerycache { 192.168.0.0/16; }

创建正向解析区域

正向解析将域名转换为IP地址,例如example.com → 192.168.1.10

定义区域

named.conf中添加:

DNS服务器搭建centos

zone "example.com" IN {
    type master;
    file "example.com.zone";           # 对应区域文件
    allowupdate { none; };            # 禁止动态更新
};

创建区域文件

cd /var/named
vim example.com.zone
```示例:
```plaintext
$TTL 86400                              # 默认生存时间(秒)
@   IN  SOA     ns1.example.com. admin.example.com. (
              2025070901 ; Serial Number
              3600       ; Refresh
              1800       ; Retry
              604800     ; Expire
              86400 )    ; Minimum TTL
    IN  NS      ns1.example.com.
    IN  NS      ns2.example.com.
ns1 IN  A       192.168.1.10
ns2 IN  A       192.168.1.11
www IN  A       192.168.1.100

创建反向解析区域

反向解析将IP地址转换为域名,例如168.1.10 → ns1.example.com

定义区域

named.conf中添加:

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

创建区域文件

cd /var/named
vim 1.168.192.zone
```示例:
```plaintext
$TTL 86400
@   IN  SOA     ns1.example.com. admin.example.com. (
              2025070901
              3600
              1800
              604800
              86400 )
    IN  NS      ns1.example.com.
    IN  NS      ns2.example.com.
10   IN  PTR    ns1.example.com.
11   IN  PTR    ns2.example.com.
100  IN  PTR    www.example.com.

防火墙与SELinux配置

防火墙放行53端口

firewallcmd permanent addport=53/tcp
firewallcmd permanent addport=53/udp
firewallcmd reload

SELinux策略

若SELinux处于enforcing模式:

DNS服务器搭建centos

setsebool P named_write_master_zones on  # 允许修改区域文件

测试与验证

检查配置文件语法

namedcheckconf /etc/named.conf
namedcheckzone example.com.zone /var/named/example.com.zone

使用工具验证

# 正向解析测试
dig @localhost www.example.com
# 反向解析测试
dig @localhost x 192.168.1.100
# 使用nslookup交互式测试
nslookup www.example.com localhost

常见问题与解答

Q1: 防火墙已开放53端口但仍无法访问怎么办?

A1:检查SELinux策略是否限制BIND服务,执行getsebool a | grep named查看相关布尔值,必要时设置named_write_master_zoneson,确认BIND服务状态(systemctl status named)。

Q2: 如何新增一个子域名(如mail.example.com)?

A2:在example.com.zone文件中添加记录:

mail IN A 192.168.1.200

保存后重启BIND服务(systemctl restart named),即可通过dig mail.example.com验证。

DNS服务器搭建centos


通过以上步骤,您已在CentOS系统成功搭建基础DNS服务器,根据实际需求,可进一步配置DHCPD集成、负载均衡或高可用

发表评论:

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

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

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.