CentOS系统如何修改DNS并使其永久生效?

在 CentOS 系统中,正确配置 DNS(域名系统)是确保网络畅通无阻的关键一步,DNS 负责将我们易于记忆的域名(如 www.google.com)解析为机器能够识别的 IP 地址,更换为更快速、更安全或具备特定功能的公共 DNS 服务器,可以提升上网体验、增强隐私保护,甚至绕过某些网络限制,本文将详细介绍在 CentOS 不同版本中更换 DNS 的多种方法,并提供验证步骤和常用服务器推荐。

CentOS系统如何修改DNS并使其永久生效?


适用于 CentOS 7 及更早版本(编辑网络配置文件)

对于使用传统 network-scripts 管理网络的 CentOS 7 及更早版本,最稳定的方法是直接编辑网络接口的配置文件。

  1. 确定网络接口名称
    使用以下命令查看您的网络接口名称,通常为 ens33、eth0 等。

    ip addr
  2. 编辑配置文件
    找到对应接口的配置文件,它位于 /etc/sysconfig/network-scripts/ 目录下,文件名格式为 ifcfg-<接口名称>,接口名为 ens33,则编辑文件:

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
  3. 添加或修改 DNS 设置
    在文件中,添加或修改以下两行。DNS1 为主用 DNS,DNS2 为备用 DNS,这里以 Google DNS 为例。

    DNS1=8.8.8.8
    DNS2=8.8.4.4

    为防止 DHCP 服务器分配的 DNS 覆盖手动设置,建议同时添加或确保 PEERDNS 参数为 no:

    PEERDNS=no
  4. 重启网络服务
    保存文件后,重启网络服务使配置生效。

    systemctl restart network

适用于 CentOS 8/9 及 Stream(使用 nmcli 命令)

从 CentOS 8 开始,NetworkManager 及其命令行工具 nmcli 成为默认的网络管理方式,使用 nmcli 是最推荐且现代的方法。

CentOS系统如何修改DNS并使其永久生效?

  1. 查看网络连接名称
    nmcli 管理的是“连接”,而非直接的“接口”,使用以下命令查看所有连接:

    nmcli connection show

    找到您正在使用的连接名称,通常与接口名类似,Wired connection 1 或 ens33。

  2. 修改连接的 DNS 设置
    假设连接名称为 ens33,使用以下命令设置 DNS,多个 DNS 地址用空格隔开,并用引号包裹。

    nmcli con mod "ens33" ipv4.dns "8.8.8.8 8.8.4.4"
  3. 防止自动 DNS 覆盖
    同样,为了防止 DHCP 自动获取的 DNS 覆盖手动设置,需执行:

    nmcli con mod "ens33" ipv4.ignore-auto-dns yes
  4. 激活配置
    通过重新激活连接来应用更改。

    nmcli con down "ens33" && nmcli con up "ens33"

临时生效(直接编辑 resolv.conf)

此方法适用于临时测试,重启网络或服务器后配置会丢失。

直接编辑 /etc/resolv.conf 文件:

CentOS系统如何修改DNS并使其永久生效?

vi /etc/resolv.conf
```或直接在文件顶部添加:

nameserver 8.8.8.8
nameserver 8.8.4.4

保存后立即生效,但请务必注意,`NetworkManager` 或 `network` 服务在下次启动或续约 DHCP 时会覆盖此文件。
---
### **如何验证 DNS 设置是否生效**
无论使用哪种方法,都可以通过以下方式验证。
1.  **查看 resolv.conf 文件**
    查看 `/etc/resolv.conf` 文件内容,确认其中包含您设置的 `nameserver`。
    ```bash
    cat /etc/resolv.conf
  1. 使用解析工具测试
    使用 nslookup 或 dig 命令解析一个域名,看是否能返回正确的 IP 地址。

    nslookup www.baidu.com

    如果返回了百度的 IP 地址列表,说明 DNS 工作正常。


常用公共 DNS 服务器推荐

提供商 主 DNS 备用 DNS 特点
Google 8.8.8 8.4.4 速度快,稳定,全球可用
Cloudflare 1.1.1 0.0.1 注重隐私,速度快,响应时间短
Quad9 9.9.9 112.112.112 内置安全策略,阻止已知恶意域名
阿里 DNS 5.5.5 6.6.6 针对中国大陆用户优化,解析快
114 DNS 114.114.114 114.115.115 国内老牌 DNS,速度快,纯净

相关问答 (FAQs)

为什么我修改了 /etc/resolv.conf 文件,重启网络或服务器后就失效了?
解答: 这是因为在现代 Linux 发行版(包括 CentOS)中,/etc/resolv.conf 文件通常是由网络管理服务(如 NetworkManager 或 network 脚本)动态生成的,当这些服务启动、重新配置或从 DHCP 服务器获取信息时,它们会根据其主配置文件(如 ifcfg-* 或 nmcli 的设置)来重写 /etc/resolv.conf,直接编辑该文件只是一种临时措施,要实现永久更改,必须修改网络管理服务的主配置,如方法一和方法二所示。

我应该选择哪个公共 DNS?它们之间有什么区别?
解答: 选择哪个 DNS 取决于您的具体需求。Google DNS (8.8.8.8) 是最通用的选择,以其稳定性和速度著称。Cloudflare DNS (1.1.1.1) 则强调用户隐私,承诺不会记录用户的浏览数据,且性能优异。Quad9 (9.9.9.9) 的主要卖点是安全,它会自动过滤掉已知的恶意网站,为设备提供一层额外的保护,如果您在中国大陆,阿里 DNS (223.5.5.5) 或 114 DNS 可能会提供更快的解析速度和更低的延迟,您可以根据自己对速度、隐私和安全性的优先级来做出选择。

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/258142.html

Like (0)
小编小编
Previous 2025年10月19日 15:39
Next 2025年10月19日 15:53

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注