温馨提示×

centos域名解析设置教程

小樊
39
2025-12-07 12:14:16
栏目: 云计算

CentOS 域名解析设置教程

一 场景与目标

  • CentOS 7/8 上搭建 BIND 权威 DNS 服务器,完成 正向解析(域名→IP)反向解析(IP→域名),并通过本机或局域网客户端验证。
  • 适合内网测试、私有域名、实验环境;公网对外服务需额外考虑安全与访问控制。

二 环境准备

  • 准备一台 CentOS 主机,规划:
    • 域名:example.com
    • 服务器 IP:192.168.180.188
    • 反向区域网段:192.168.180.0/24(对应反向域名为 180.168.192.in-addr.arpa
  • 安装软件包:
    • yum install -y bind bind-utils
  • 建议目录与文件权限:
    • 区域文件存放于 /var/named/,由 named 用户/组读取,复制模板时使用 cp -p 保留属主属组。

三 安装与基础配置

  • 编辑主配置文件 /etc/named.conf,关键项示例:
    • 监听与访问控制(生产环境建议改为指定网段/IP):
      • listen-on port 53 { any; };
      • allow-query { any; };
    • 递归与转发(按需):
      • recursion yes;(权威+缓存或纯缓存模式)
      • forwarders { 8.8.8.8; 114.114.114.114; };(无法直解时转发到公共 DNS)
    • 包含区域定义文件:
      • include “/etc/named.rfc1912.zones”;
  • 语法检查与启动:
    • named-checkconf /etc/named.conf
    • systemctl enable --now named
  • 防火墙放行(示例 firewalld):
    • firewall-cmd --add-service=dns --permanent && firewall-cmd --reload。

四 正向与反向区域配置

  • 声明区域(两种等价做法,二选一或并存):
    • 方式 A:在 /etc/named.conf 的 options 外直接定义
      • zone “example.com” IN { type master; file “example.com.zone”; allow-update { none; }; };
      • zone “180.168.192.in-addr.arpa” IN { type master; file “example.com.arpa”; allow-update { none; }; };
    • 方式 B:在 /etc/named.rfc1912.zones 末尾追加同样内容(保持与 named.conf 的 include 一致)。
  • 创建正向区域文件 /var/named/example.com.zone(从模板复制并修改属主属组):
    • cp -p named.empty /var/named/example.com.zone
    • 示例内容(注意结尾的点号与分号):
      $TTL 86400
      @   IN  SOA dns.example.com. root.example.com. (
              2023102701  ; Serial
              3600        ; Refresh
              1800        ; Retry
              604800      ; Expire
              86400 )      ; Minimum TTL
          IN  NS  dns.example.com.
      dns IN  A   192.168.180.188
      www IN  A   192.168.180.189
      ftp IN  A   192.168.180.191
      @   IN  MX  10 mail.example.com.
      mail IN  A   192.168.180.190
      
  • 创建反向区域文件 /var/named/example.com.arpa
    • cp -p named.empty /var/named/example.com.arpa
    • 示例内容:
      $TTL 86400
      @   IN  SOA dns.example.com. root.example.com. (
              2023102701  ; Serial
              3600        ; Refresh
              1800        ; Retry
              604800      ; Expire
              86400 )      ; Minimum TTL
          IN  NS  dns.example.com.
      188 IN  PTR dns.example.com.
      189 IN  PTR www.example.com.
      190 IN  PTR mail.example.com.
      191 IN  PTR ftp.example.com.
      
  • 权限与检查:
    • chown :named /var/named/example.com.zone /var/named/example.com.arpa
    • named-checkzone example.com /var/named/example.com.zone
    • named-checkzone 180.168.192.in-addr.arpa /var/named/example.com.arpa
    • systemctl restart named。

五 客户端解析与测试

  • 本机作为客户端测试(将 DNS 指向本机):
    • echo “nameserver 127.0.0.1” > /etc/resolv.conf
    • 若由 NetworkManager 管理网络,建议禁用其 DNS 覆盖:在 /etc/NetworkManager/NetworkManager.conf 的 [main] 加入 dns=none,然后重启 NetworkManager 或系统。
  • 常用测试命令(来自 bind-utils):
    • dig @127.0.0.1 example.com A +short
    • dig @127.0.0.1 www.example.com A +short
    • dig @127.0.0.1 -x 192.168.180.188 +short
    • nslookup example.com
    • nslookup -type=MX example.com
  • 局域网其他主机测试:
    • 将客户端 /etc/resolv.conf 的 nameserver 指向 192.168.180.188,再执行上述 dig/nslookup 命令。

六 常见问题与优化

  • 权限与属主:区域文件必须可被 named 读取,复制模板务必使用 cp -p,并确认属组为 named,否则会出现 permission denied 或加载失败。
  • 语法与区域检查:每次修改后用 named-checkconfnamed-checkzone 校验,再重启服务,能快速定位错误行。
  • 监听与访问控制:生产环境将 listen-onallow-query 限制为必要网段/IP;对外递归需谨慎,避免被滥用参与放大攻击。
  • 公网与转发:若本机无法直接解析外网域名,配置 forwarders { 8.8.8.8; 114.114.114.114; };仅做权威解析时可关闭递归。
  • 缓存与性能:客户端可启用 NSCD 做名称服务缓存;服务器端保持合理的 SOA 刷新/重试/过期参数,变更记录时递增 Serial
  • 安全建议:对外服务建议启用 DNSSEC(dnssec-enable/dnssec-validation),并考虑 chroot 环境(bind-chroot)与最小权限原则。

0