You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 7 BIND反向DNS解析故障求助

排查CentOS 7 BIND反向解析失败问题

我帮你捋捋CentOS 7上BIND反向解析失效的常见坑,这些都是新手容易忽略的细节:

  • 确认反向区域在named.conf中正确声明
    你得先检查/etc/named.conf里有没有添加反向区域的配置条目。比如你的服务器网段是192.168.1.x,那反向区域名要写成1.168.192.in-addr.arpa,配置格式大概是:

    zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "example.com.rev"; # 这里填你的反向解析文件名
        allow-update { none; };
    };
    

    注意网段的反向写法别搞反了,比如10.0.0.x的反向区域是0.0.10.in-addr.arpa。

  • 检查反向解析文件的格式是否正确
    反向解析文件里的PTR记录很容易写错:

    • 每条记录的前缀是IP的最后一段,比如192.168.1.10对应的前缀是10
    • PTR记录的目标主机名必须带结尾的点(.),不然会自动拼接$ORIGIN的后缀,导致解析错误,正确格式示例:
      $TTL 86400
      @   IN  SOA ns.example.com. admin.example.com. (
              2024052001  ; Serial
              3600        ; Refresh
              1800        ; Retry
              604800      ; Expire
              86400       ; Minimum TTL
      )
      @   IN  NS  ns.example.com.
      10  IN  PTR ansible-node1.example.com.
      

    另外要确保文件里的$ORIGIN和你在named.conf里声明的反向区域名一致。

  • 验证文件权限与SELinux上下文
    CentOS 7里BIND的运行用户是named,所以/var/named/下的反向解析文件必须满足:

    • 权限至少是640,避免权限不足读取失败
    • 所属用户组是named:named
      可以用下面的命令修复:
    chown named:named /var/named/你的反向解析文件名
    chmod 640 /var/named/你的反向解析文件名
    restorecon -Rv /var/named/ # 修复SELinux上下文
    
  • 检查配置语法并重启服务
    每次修改配置后,先验证语法是否正确:

    named-checkconf /etc/named.conf # 检查主配置
    named-checkzone 1.168.192.in-addr.arpa /var/named/你的反向解析文件名 # 检查反向区域文件
    

    如果没有报错,再重启named服务生效:

    systemctl restart named
    systemctl enable named # 确保开机自启
    
  • 用命令测试反向解析
    最后用dig或者nslookup直接测试,比如:

    dig -x 192.168.1.10 @localhost # 指定本地DNS服务器测试
    nslookup 192.168.1.10 localhost
    

    看输出里的ANSWER SECTION有没有对应的PTR记录,如果没有,再回头检查前面的配置。

内容的提问来源于stack exchange,提问作者wabbajack001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:22:40