温馨提示×

CentOS域名DNS设置方法

小樊
47
2025-09-26 07:30:05
栏目: 云计算

一、准备工作 在CentOS上设置域名DNS前,需完成以下基础准备:

  1. 确保系统已更新至最新版本:sudo yum update -y
  2. 安装BIND(DNS服务器软件)及工具包:sudo yum install bind bind-utils -ybind为核心服务,bind-utils提供nslookupdig等测试工具)。

二、配置DNS主配置文件 BIND的主配置文件为/etc/named.conf,需修改以下关键参数:

  1. 允许监听所有IP地址(若需对外提供服务):在options块中添加listen-on port 53 { any; };
  2. 允许所有客户端查询:添加allow-query { any; };
  3. 开启递归查询(可选,根据需求调整):添加recursion yes;
  4. 保存并退出:修改完成后保存文件。

三、创建正向解析区域 正向解析将域名映射为IP地址,步骤如下:

  1. 在主配置文件中添加区域定义:在/etc/named.conf中新增以下内容(以example.com为例):
    zone "example.com" IN {
        type master;                  # 区域类型(主服务器)
        file "/var/named/example.com.zone";  # 区域文件路径
        allow-update { none; };       # 禁止动态更新(生产环境建议设为none)
    };
    
  2. 创建区域文件:执行sudo vi /var/named/example.com.zone,添加以下内容(需替换为实际IP):
    $TTL 86400                      # 记录生存时间(1天)
    @       IN      SOA     ns1.example.com. admin.example.com. (  # SOA记录(起始授权机构)
                2025092601 ; Serial          # 序列号(每次修改需递增)
                3600 ; Refresh                # 刷新时间(1小时)
                1800 ; Retry                  # 重试时间(30分钟)
                604800 ; Expire               # 过期时间(1周)
                86400 ) ; Minimum TTL         # 最小TTL(1天)
    @       IN      NS      ns1.example.com.  # NS记录(域名服务器)
    @       IN      A       192.168.1.100     # A记录(域名→IP)
    ns1     IN      A       192.168.1.100     # 域名服务器自身的A记录
    www     IN      A       192.168.1.101     # www子域名的A记录
    mail    IN      A       192.168.1.102     # mail子域名的A记录
    
  3. 设置文件权限:执行sudo chown named:named /var/named/example.com.zone(确保BIND用户拥有所有权);
  4. 验证区域文件语法:执行sudo named-checkzone example.com /var/named/example.com.zone,若无错误则说明配置正确。

四、配置反向解析(可选) 反向解析将IP地址映射为域名,适用于邮件服务器等场景,步骤如下:

  1. 在主配置文件中添加反向区域定义:假设IP段为192.168.1.0/24,添加以下内容:
    zone "1.168.192.in-addr.arpa" IN {  # 反向区域名(IP段反转+in-addr.arpa)
        type master;
        file "/var/named/192.168.1.rev";
        allow-update { none; };
    };
    
  2. 创建反向区域文件:执行sudo vi /var/named/192.168.1.rev,添加以下内容:
    $TTL 86400
    @       IN      SOA     ns1.example.com. admin.example.com. (
                2025092601 ; Serial
                3600 ; Refresh
                1800 ; Retry
                604800 ; Expire
                86400 )
    @       IN      NS      ns1.example.com.
    100     IN      PTR     example.com.      # 192.168.1.100的反向解析
    101     IN      PTR     www.example.com.  # 192.168.1.101的反向解析
    102     IN      PTR     mail.example.com. # 192.168.1.102的反向解析
    
  3. 验证反向区域文件语法:执行sudo named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev

五、启动并启用DNS服务

  1. 启动BIND服务sudo systemctl start named
  2. 设置开机自启动sudo systemctl enable named
  3. 检查服务状态sudo systemctl status named(若显示“active (running)”则表示启动成功)。

六、配置防火墙 允许DNS流量(UDP/TCP 53端口)通过防火墙:

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

七、测试DNS解析 使用以下命令验证配置是否生效:

  1. 测试正向解析nslookup example.comdig @localhost example.com
  2. 测试反向解析nslookup 192.168.1.100dig -x 192.168.1.100 @localhost
  3. 检查解析结果:若返回对应的IP地址或域名,则说明配置成功。

八、客户端配置(可选) 若其他设备需通过该DNS服务器解析域名,需修改客户端的DNS设置:

  1. CentOS客户端:编辑/etc/resolv.conf,添加nameserver <DNS服务器IP>(如nameserver 192.168.1.100);
  2. Windows客户端:进入“网络设置”→“DNS服务器”,添加对应的IP地址。

0