首页主机资讯CentOS域名DNS设置指南

CentOS域名DNS设置指南

时间2025-10-01 07:35:03发布访客分类主机资讯浏览764
导读:CentOS域名DNS设置指南 一、准备工作 在开始配置前,请确保: 已获取域名的管理权限(如DNS解析配置权限); CentOS系统已联网,且具备root或sudo权限; 记录域名对应的DNS服务器IP(本机IP,如192.168.1....

CentOS域名DNS设置指南

一、准备工作

在开始配置前,请确保:

  1. 已获取域名的管理权限(如DNS解析配置权限);
  2. CentOS系统已联网,且具备root或sudo权限;
  3. 记录域名对应的DNS服务器IP(本机IP,如192.168.1.100)及Web服务器IP(如192.168.1.101)。

二、安装BIND DNS服务器

BIND(Berkeley Internet Name Domain)是CentOS默认的DNS服务器软件,通过以下命令安装:

sudo yum install bind bind-utils -y
  • bind:DNS服务器主程序;
  • bind-utils:包含nslookupdig等DNS查询工具,用于后续测试。

三、配置BIND主配置文件

主配置文件/etc/named.conf定义了DNS服务器的全局参数和区域规则。使用文本编辑器打开:

sudo vi /etc/named.conf

修改以下关键参数:

options {

    listen-on port 53 {
     any;
 }
    ;
                 监听所有IPv4地址的53端口
    listen-on-v6 port 53 {
     none;
 }
    ;
                 不监听IPv6(可选)
    directory       "/var/named";
               区域文件默认存储路径
    allow-query     {
     any;
 }
    ;
                       允许所有客户端查询(生产环境建议限制为内网IP)
    recursion yes;
                              允许递归查询(客户端请求未知记录时,服务器代为查询)
}
    ;

添加域名区域配置(以example.com为例):

zone "example.com" IN {
    
    type master;
                                    区域类型:master(主服务器)
    file "/var/named/example.com.zone";
         区域数据文件路径
    allow-update {
     none;
 }
    ;
                     禁止动态更新(防止未经授权的修改)
}
    ;
    

保存并退出(:wq)。

四、创建区域数据文件

区域文件存储了域名的具体解析记录(如A记录、NS记录)。根据named.conf中的配置,创建/var/named/example.com.zone

sudo vi /var/named/example.com.zone

添加以下内容(按需修改):

$TTL 86400                                    默认TTL(Time To Live),单位:秒(1天)
@       IN      SOA     ns1.example.com. admin.example.com. (   SOA记录(Start of Authority)
    2025092401 ;
     Serial                       序列号(每次修改区域文件需递增,如日期+序号)
    3600 ;
     Refresh                            刷新时间(从服务器向主服务器同步记录的间隔)
    1800 ;
     Retry                              重试时间(从服务器同步失败后的重试间隔)
    604800 ;
     Expire                           过期时间(从服务器超过刷新时间未同步,则认为数据过期)
    86400 ;
     Minimum TTL                       最小TTL(缓存记录的最长时间)
)
@       IN      NS      ns1.example.com.      NS记录(Name Server,指定域名解析服务器)
ns1     IN      A       192.168.1.100         A记录(域名指向IPv4地址)
www     IN      A       192.168.1.101         A记录(www子域名指向Web服务器IP)
mail    IN      A       192.168.1.102         A记录(mail子域名指向邮件服务器IP,可选)
  • @:代表域名本身(example.com);
  • Serial:每次修改区域文件后必须递增(如2025092402),否则从服务器不会同步更新;
  • ns1.example.com.:域名解析服务器名称(需与NS记录一致,末尾.表示绝对域名,避免拼接错误)。

五、启动并启用BIND服务

配置完成后,启动BIND服务并设置开机自启动:

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

检查服务状态(确保无报错):

sudo systemctl status named

若状态显示active (running),则表示服务启动成功。

六、配置防火墙允许DNS流量

CentOS默认使用firewalld作为防火墙,需允许DNS流量(UDP/TCP 53端口):

sudo firewall-cmd --permanent --add-service=dns   永久添加DNS服务规则
sudo firewall-cmd --reload                        重新加载防火墙配置

验证规则是否生效:

sudo firewall-cmd --list-services

输出应包含dns

七、配置客户端DNS

在需要解析该域名的客户端设备上,修改网络配置文件(以以太网为例):

sudo vi /etc/resolv.conf

添加DNS服务器IP(本机IP):

nameserver 192.168.1.100

保存后,客户端将优先使用该DNS服务器解析域名。

八、测试DNS解析

使用nslookupdig命令验证解析是否正确:

nslookup example.com 192.168.1.100            指定DNS服务器查询
dig @192.168.1.100 example.com A              查询A记录
dig @192.168.1.100 www.example.com A          查询www子域名A记录

若返回结果中Answer Section包含正确的IP地址(如192.168.1.101),则表示解析成功。

注意事项

  1. 序列号递增:每次修改区域文件后,必须递增Serial字段(如20250924012025092402),否则从服务器无法同步更新;
  2. SELinux配置:若启用了SELinux,需允许BIND写入区域文件:
    sudo setsebool -P named_writeable_zone_files 1
    
  3. 生产环境优化
    • 限制allow-query为内网IP(如192.168.1.0/24),避免暴露给公网;
    • 配置forwarders(转发器)指向公共DNS服务器(如8.8.8.8),提高外部域名解析效率;
    • 使用rndc(远程名称守护进程控制)工具管理BIND服务(如rndc reload example.com重新加载区域文件)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS域名DNS设置指南
本文地址: https://pptw.com/jishu/715419.html
CentOS域名解析速度影响因素 CentOS域名常见问题

游客 回复需填写必要信息