HCRM博客

在 CentOS 6.5 系统中配置 DNS 服务指南

为您的 CentOS 6.5 服务器配置稳定 DNS:方法与关键考量

稳定可靠的域名解析(DNS)是 CentOS 6.5 服务器访问互联网资源、进行软件更新以及提供对外服务的基础,配置不当可能导致连接缓慢、更新失败或服务异常,本文将为您清晰讲解两种在 CentOS 6.5 上添加 DNS 服务器的核心方法,并分析其适用场景,助您做出最佳选择。

临时配置:快速验证(重启失效)

在 CentOS 6.5 系统中配置 DNS 服务指南-图1

当您需要快速测试特定 DNS 服务器或进行临时故障排查时,修改 /etc/resolv.conf 文件是最直接的方式。

  1. 使用编辑器打开文件:

    sudo vi /etc/resolv.conf
  2. 添加或修改 DNS 服务器: 在文件中,您会看到类似 nameserver X.X.X.X 的行(X.X.X.X 是 IP 地址),要添加新的 DNS 服务器:

    • 在已有 nameserver 行下方添加新行(如需)。
    • 使用 nameserver 关键字,后接您要使用的 DNS 服务器 IP 地址(如 nameserver 8.8.8.8)。
    • 通常建议配置至少两个,以提供冗余,系统会按顺序尝试查询。
    • 示例(添加 Google Public DNS):
      nameserver 8.8.8.8
      nameserver 8.8.4.4
  3. 保存并退出: (在 vi 中按 Esc 键,输入 :wq,再按回车)。

  4. 立即生效: 此更改通常无需额外命令即可立即生效。

重要提示: 此方法配置的 DNS 在以下情况会被覆盖或重置

在 CentOS 6.5 系统中配置 DNS 服务指南-图2
  • 系统重启。
  • 网络服务重启 (sudo service network restart)。
  • 当系统通过 DHCP 获取 IP 地址时,DHCP 服务器推送的 DNS 设置会覆盖此文件内容。

永久配置:确保重启后依然有效

要实现 DNS 设置的持久化,使其在服务器重启或网络服务重启后依然有效,需要修改网络接口配置文件或使用 chattr 锁定 /etc/resolv.conf

修改网卡配置文件 (推荐且标准)

这是 CentOS 6 推荐的标准做法,尤其适用于使用静态 IP 或需要精确控制网络配置的场景。

  1. 定位网卡配置文件: 配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,命名格式为 ifcfg-ethX(如 ifcfg-eth0 对应第一块以太网卡),使用 ifconfigip addr 命令确定您正在使用的活动网卡名称。

    ifconfig
  2. 编辑对应配置文件: 使用您确定的网卡名称(eth0):

    在 CentOS 6.5 系统中配置 DNS 服务指南-图3
    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  3. 添加 DNS 配置:

    • 在文件中找到或添加以下两行:
      DNS1=主DNS服务器IP地址
      DNS2=备用DNS服务器IP地址
    • DNS1=8.8.8.8
      DNS2=1.1.1.1
    • 如果需要配置更多 DNS 服务器(虽然通常两个足够),可以使用 DNS3=
  4. 保存并退出。

  5. (可选但推荐)重启网络服务: 使更改永久生效并应用到当前会话。

    sudo service network restart

    注意: 执行此命令会短暂中断网络连接,如果通过 SSH 连接操作,请确保操作环境允许短暂断开或直接在服务器控制台操作。

锁定 /etc/resolv.conf 文件 (备选方案)

如果您有特殊原因必须直接维护 /etc/resolv.conf 的内容,并希望阻止系统(尤其是 NetworkManager 或 DHCP 客户端)覆盖它,可以使用 chattr 命令将其设置为不可变 (immutable)。

  1. 按需编辑 /etc/resolv.conf 先用第一部分的方法将您需要的 DNS 服务器写入该文件。

    sudo vi /etc/resolv.conf
  2. 添加不可变属性:

    sudo chattr +i /etc/resolv.conf

    这个 +i 标志会阻止任何用户(包括 root)修改或删除该文件,直到属性被移除。

  3. 验证锁定: 尝试编辑或删除文件,应会收到 “Operation not permitted” 错误。

解除锁定(如需修改):

sudo chattr -i /etc/resolv.conf

此方法的局限:

  • 它解决了覆盖问题,但本质上还是依赖一个可能被手动修改的文件。
  • 如果您的网络环境依赖 DHCP 获取 IP 地址,DNS 设置经常变动(虽然服务器环境较少见),锁定此文件可能导致您无法获取到 DHCP 提供的最新 DNS 设置。
  • 在需要修改 DNS 时,必须记得先解除锁定。

选择哪种永久配置方式?

  • 强烈推荐 ifcfg-ethX 文件配置 (方法一): 这是 CentOS 6 管理网络配置(包括 DNS)的标准、预期的方式,它清晰地将 DNS 设置与特定的网络接口关联起来,符合系统管理逻辑,重启网络服务或系统后自动生效,无需额外锁定操作,与 DHCP 交互也更可控(通过配置文件中的 PEERDNS=no 选项可禁用 DHCP 覆盖 DNS)。
  • 谨慎使用 chattr +i (方法二): 仅作为特殊情况下的变通方案,例如当某些特殊软件或复杂网络环境导致标准方法失效时,它增加了额外的管理步骤(需记住解锁才能修改),并且可能掩盖了配置管理上的潜在问题。

验证 DNS 配置是否生效

配置完成后,务必进行测试:

  1. 检查 /etc/resolv.conf

    cat /etc/resolv.conf

    确认其中显示的 nameserver 行符合您的预期(对于方法一,重启网络服务后,这里的内容应该会自动更新为 ifcfg-ethX 中配置的 DNS 服务器)。

  2. 使用 nslookupdig 测试解析:

    nslookup google.com
    # 或
    dig google.com

    查看命令输出是否返回了有效的 IP 地址,这直接验证了 DNS 查询功能。

  3. 测试网络连通性:

    ping -c 4 google.com

    如果能收到回复,表明 DNS 解析成功且网络连通正常。

关键考量与建议

  • DNS 服务器选择: 选择稳定、快速且可信赖的公共 DNS(如 Google 8.8.8/8.4.4, Cloudflare 1.1.1/0.0.1)或您企业/ISP 提供的专用 DNS,公共 DNS 通常响应快、安全性高,对于访问特定内网资源,可能需要配置内部 DNS 服务器地址。
  • 配置多个 DNS 服务器: 配置至少两个不同的 DNS 服务器至关重要,这提供了冗余能力,当首选 DNS 服务器不可达时,系统会自动尝试使用备用服务器,最大限度保证域名解析服务的连续性。
  • 首选 ifcfg-ethX 方法: 对于服务器环境,强烈建议使用修改 /etc/sysconfig/network-scripts/ifcfg-ethX 文件的方式来永久配置 DNS,这是最符合 CentOS 6 设计、最可靠且易于维护的方式,锁定 /etc/resolv.conf 应视为最后手段。
  • 理解覆盖机制: 明确知道 /etc/resolv.conf 是一个可能被动态修改的文件(由 NetworkManager、DHCP 客户端或 ifcfg-* 脚本更新),理解 ifcfg-* 文件中的配置才是最终决定 /etc/resolv.conf 内容(在 service network restart 后)的源头。
  • 防火墙设置: 确保服务器的防火墙(如 iptables)允许 UDP 53 端口(DNS 查询端口)的出站流量,通常配置如下:
    sudo iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
    sudo service iptables save  # 保存规则使重启后生效

掌握在 CentOS 6.5 上正确配置 DNS 的方法,是保障服务器稳定运行的重要基础环节,选择标准可靠的配置方式,结合有效的验证测试,您就能轻松构建稳定高效的域名解析环境,现在您的服务器应该能够顺畅地通过域名访问互联网资源了,如果在后续维护中遇到解析问题,不妨首先回顾这里的配置步骤和验证方法。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/37197.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~