CentOS 7如何修改DNS配置?永久生效方法步骤详解

在CentOS 7系统中,DNS(域名系统)配置的正确性直接影响网络访问的稳定性和效率,DNS的主要作用是将人类可读的域名(如www.example.com)解析为机器可识别的IP地址,默认情况下,CentOS 7会从网络管理器(NetworkManager)或DHCP服务器获取DNS配置,但在某些场景下,如内网服务访问、特定域名解析需求或静态IP环境,手动修改DNS配置是必要的,本文将详细介绍在CentOS 7系统中修改DNS配置的多种方法、注意事项及常见问题排查。

CentOS 7如何修改DNS配置?永久生效方法步骤详解

修改DNS配置的方法

通过NetworkManager修改(适用于动态IP环境)

NetworkManager是CentOS 7默认的网络管理工具,支持图形界面和命令行两种配置方式,对于使用DHCP动态获取IP地址的系统,优先通过NetworkManager管理DNS配置,避免配置冲突。

  1. 图形界面操作
    打开“设置”>“网络”,选择当前活动的网络连接(如以太网或WLAN),点击“配置”按钮,切换到“IPv4”或“IPv6”选项卡,在“DNS服务器”字段中输入DNS地址(如8.8.8.8、114.114.114.114),点击“保存”即可,配置生效后,可通过cat /etc/resolv.conf查看DNS设置。

  2. 命令行操作
    使用nmcli命令行工具修改,为以太网连接(enp0s3)添加DNS服务器:

    sudo nmcli con mod enp0s3 ipv4.dns "8.8.8.8 114.114.114.114"
    sudo nmcli con up enp0s3

    修改后,NetworkManager会自动更新/etc/resolv.conf文件。

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

/etc/resolv.conf是系统解析DNS的核心配置文件,但直接编辑该文件的方法仅在NetworkManager未运行或禁用时推荐使用,因为重启网络服务或系统后,配置可能被覆盖。

CentOS 7如何修改DNS配置?永久生效方法步骤详解

  1. 使用文本编辑器(如vi)打开文件:
    sudo vi /etc/resolv.conf
  2. 添加或修改DNS服务器地址,格式为:
    nameserver 8.8.8.8
    nameserver 114.114.114.114
  3. 保存文件后,立即生效,但需注意后续网络管理操作可能覆盖该配置。

通过/etc/sysconfig/network-scripts/配置(适用于静态IP环境)

对于使用静态IP地址的系统,DNS配置应与网络接口配置文件绑定,确保持久化生效。

  1. 定位网络接口配置文件(如ifcfg-enp0s3):
    ls /etc/sysconfig/network-scripts/
  2. 编辑该文件,添加或修改DNS相关参数:
    sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    在文件中添加以下内容:

    DNS1="8.8.8.8"
    DNS2="114.114.114.114"
  3. 重启网络服务使配置生效:
    sudo systemctl restart network

使用systemd-resolved服务(推荐)

CentOS 7默认使用systemd-resolved服务管理本地DNS解析,该服务可提供更稳定的DNS缓存和解析功能。

  1. 启用并启动systemd-resolved服务:
    sudo systemctl enable --now systemd-resolved
  2. 创建或修改/etc/systemd/resolved.conf文件,取消注释并修改DNS服务器:
    sudo vi /etc/systemd/resolved.conf

    设置以下参数:

    DNS=8.8.8.8 114.114.114.114
  3. 重启服务并创建符号链接(确保/etc/resolv.conf指向systemd-resolved生成的文件):
    sudo systemctl restart systemd-resolved
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

常见问题排查

  1. DNS配置不生效
    检查/etc/resolv.conf文件权限是否为644,确认NetworkManager或systemd-resolved服务状态正常,若使用静态IP,确保DNS配置在网卡文件中正确设置,并重启网络服务。

    CentOS 7如何修改DNS配置?永久生效方法步骤详解

  2. 域名解析失败
    使用nslookupdig命令测试DNS解析:

    nslookup www.example.com

    若返回错误,可能是DNS服务器不可达或防火墙(如firewalld、iptables)拦截了DNS查询端口(53),可通过sudo firewall-cmd --permanent --add-service=dns && sudo firewall-cmd --reload开放端口。

相关问答FAQs

Q1: 修改DNS配置后,如何验证是否生效?
A1: 可以通过以下方式验证:

  1. 使用cat /etc/resolv.conf查看当前DNS服务器地址是否与配置一致;
  2. 执行nslookup www.baidu.com测试域名解析,若返回正确的IP地址,则说明配置生效;
  3. 使用systemctl status systemd-resolvedsystemctl status NetworkManager检查相关服务运行状态是否正常。

Q2: 为什么直接修改/etc/resolv.conf后重启网络服务,配置被重置?
A2: 在CentOS 7中,/etc/resolv.conf文件通常由NetworkManager或systemd-resolved服务自动管理,直接编辑该文件后,若重启网络服务或NetworkManager,服务会根据其配置重新生成该文件,导致手动修改失效,建议通过NetworkManager的配置文件或systemd-resolved服务管理DNS,确保配置持久化。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-12-18 15:15
下一篇 2025-12-18 15:18

相关推荐

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信