求助,CentOS 7系统下更改DNS永久生效的具体步骤是什么?

在CentOS 7系统中,DNS(域名系统)配置是确保服务器能够正确解析域名至IP地址的关键环节,无论是为了提升网络访问速度、绕过DNS污染,还是为了接入特定的内部网络资源,正确地更改DNS设置都是一项基础且重要的系统管理任务,本文将详细介绍在CentOS 7中更改DNS的几种主流方法,并分析其优劣,以帮助您根据实际需求选择最合适的方案。

求助,CentOS 7系统下更改DNS永久生效的具体步骤是什么?

使用 nmcli 命令行工具(推荐)

nmcli(NetworkManager Command-Line Interface)是CentOS 7中与NetworkManager服务交互的首选命令行工具,它功能强大,能够动态、持久地修改网络配置,包括DNS设置,且操作相对安全,是现代Linux发行版推荐的方式。

查看当前网络连接名称

需要确定您要修改的网络连接的名称,这通常不是网卡设备名(如ens33),而是NetworkManager中定义的连接配置名。

nmcli connection show

执行后,您会看到一个列表,其中NAME就是连接名称,常见的连接名称可能是ens33Wired connection 1System eth0

修改指定连接的DNS服务器

假设您的连接名称是ens33,您可以使用以下命令来设置DNS服务器,这里以Google的公共DNS(8.8.8.8和8.8.4.4)为例。

sudo nmcli connection mod "ens33" ipv4.dns "8.8.8.8 8.8.4.4"
  • connection mod:修改连接配置。
  • "ens33":您的连接名称,建议用引号括起来以防名称中包含空格。
  • ipv4.dns:指定IPv4的DNS服务器地址,多个地址用空格隔开。

重启网络连接使配置生效

修改配置后,需要重新激活网络连接才能让新的DNS设置生效。

sudo nmcli connection down "ens33" && sudo nmcli connection up "ens33"

这个命令会先断开连接,然后重新连接,执行后,NetworkManager会自动将新的DNS信息写入到/etc/resolv.conf文件中。

验证DNS设置

您可以通过查看/etc/resolv.conf文件来验证DNS是否已成功更改。

cat /etc/resolv.conf

您应该能看到类似如下的输出,其中包含了您刚刚设置的DNS服务器:

# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4

可以使用nslookupdig命令来测试域名解析是否正常工作。

nslookup www.google.com

手动编辑网络接口配置文件(传统方法)

对于习惯传统配置方式的管理员,或者在不使用NetworkManager的环境中,可以直接编辑网络接口的配置文件,这种方法是持久化的,但需要手动操作和重启网络服务。

求助,CentOS 7系统下更改DNS永久生效的具体步骤是什么?

定位并编辑配置文件

网络接口配置文件位于/etc/sysconfig/network-scripts/目录下,文件名通常为ifcfg-<接口名>,例如ifcfg-ens33

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

添加或修改DNS参数

在文件中,添加或修改以下两行,如果文件中已有DNS1DNS2,直接修改其值即可。

DNS1=8.8.8.8
DNS2=8.8.4.4

重要提示:为了防止DHCP服务器在获取IP时自动覆盖您手动设置的DNS,建议在文件中添加或确保PEERDNS参数的值为no

PEERDNS=no

重启网络服务

保存并退出编辑器后,需要重启网络服务以使配置生效。

sudo systemctl restart network

重启后,系统会读取新的配置文件,并将DNS设置应用到/etc/resolv.conf中。

直接编辑 /etc/resolv.conf(临时方法)

这是一种最直接但通常是临时性的方法,在CentOS 7中,由于NetworkManager会管理此文件,直接修改它很可能在系统重启或网络服务重启后被覆盖。

编辑文件

sudo vi /etc/resolv.conf

设置DNS服务器

清空文件原有内容(或注释掉),然后添加您需要的DNS服务器。

nameserver 8.8.8.8
nameserver 8.8.4.4

重要警告:此方法仅适用于临时测试或紧急情况,任何由NetworkManager触发的网络事件(如重新连接)都可能导致此文件被重置,从而丢失您的手动配置,不推荐在生产环境中使用此方法进行永久性更改。

方法对比

为了更清晰地选择合适的方法,下表对上述三种方法进行了比较:

求助,CentOS 7系统下更改DNS永久生效的具体步骤是什么?

方法 持久性 易用性 推荐场景
nmcli 命令 持久化 首选方法,适用于所有使用NetworkManager的CentOS 7系统
编辑 ifcfg-* 文件 持久化 传统服务器环境,或需要精细控制网络参数的场景
编辑 resolv.conf 临时 临时测试、快速故障排除、救援模式

验证与故障排除

完成DNS更改后,除了查看/etc/resolv.conf,更可靠的验证方式是使用解析工具。

  • 使用 nslookup

    nslookup www.baidu.com

    如果能返回正确的IP地址,说明DNS配置成功。

  • 使用 dig

    dig @8.8.8.8 www.github.com

    此命令直接向指定的DNS服务器(8.8.8.8)发起查询,可以用来判断特定DNS服务器是否可达及响应速度。

如果解析失败,请检查:

  1. DNS服务器地址是否正确。
  2. 网络连接是否正常(ping 8.8.8.8)。
  3. 防火墙或SELinux是否阻止了DNS查询(通常使用UDP 53端口)。

相关问答FAQs

我按照方法二修改了ifcfg-ens33文件,重启网络后/etc/resolv.conf里的DNS还是被改成了别的地址,这是为什么?

解答:这通常是因为您的网络接口配置为通过DHCP自动获取IP地址,而DHCP服务器在分配IP的同时也提供了DNS服务器信息,即使您在ifcfg-ens33文件中设置了DNS1DNS2,如果PEERDNS参数的值为yes(或者未设置,默认为yes),那么NetworkManager在获取到DHCP信息后,会用DHCP提供的DNS覆盖您的手动设置,解决方法是在ifcfg-ens33文件中明确添加一行 PEERDNS=no,这样系统就会优先使用您在文件中静态配置的DNS地址。

我需要为我的服务器配置一个内部域名解析,同时保留一个公共DNS作为备用,应该如何操作?

解答:这是一个非常常见的需求,您可以将内部DNS服务器作为首选,公共DNS作为备用,以使用nmcli为例,假设您的内部DNS服务器是168.1.100,公共DNS是114.114.114,您可以这样设置:

sudo nmcli connection mod "ens33" ipv4.dns "192.168.1.100 114.114.114.114"

然后重启连接,系统在解析域名时,会首先尝试向168.1.100查询,如果该服务器无法解析(查询的是公共域名),则会继续向114.114.114查询,这样既保证了内部域名的快速解析,又能正常访问互联网,如果您还需要设置域名搜索后缀(在访问server01时自动补全为server01.internal.com),可以使用以下命令:

sudo nmcli connection mod "ens33" ipv4.dns-search "internal.com"

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

(0)
热舞的头像热舞
上一篇 2025-10-07 08:29
下一篇 2025-10-07 08:33

相关推荐

  • centos6.5厂家停更后,企业如何选替代系统?

    CentOS 6.5作为一款经典的企业级Linux发行版,自发布以来在服务器领域占据重要地位,其稳定性和可靠性使其成为众多企业和厂家的首选操作系统之一,本文将围绕CentOS 6.5厂家展开,详细介绍其背景、技术特点、应用场景以及市场表现,帮助读者全面了解这一系统的价值所在,CentOS 6.5的背景与厂家支持……

    2025-11-03
    0011
  • centos7服务器到底要不要开启irqbalance服务?

    在现代多核处理器系统中,高效管理系统资源是确保高性能和稳定性的关键,中断请求的管理尤为重要,当一个硬件设备(如网卡、磁盘控制器)需要CPU处理时,它会发送一个中断信号,如果所有中断都由单个CPU核心处理,该核心将很快成为性能瓶颈,而其他核心则可能处于空闲状态,为了解决这个问题,CentOS 7(以及其他现代Li……

    2025-10-26
    005
  • 负载均衡后端ecs权重设置为0的说明_后端服务器概述

    将负载均衡后端ECS权重设置为0,意味着该服务器不再接收任何流量。这通常用于暂时从负载均衡组中移除服务器进行维护或升级。

    2024-07-19
    0015
  • CentOS 7下.NET Core环境配置步骤详解?

    在CentOS 7系统中部署.NET Core应用程序是许多开发者和运维人员的常见需求,CentOS 7作为一款稳定可靠的Linux发行版,为.NET Core运行提供了良好的支持,本文将详细介绍在CentOS 7上安装.NET Core SDK、部署应用程序、配置服务以及常见问题的解决方法,安装.NET Co……

    2025-11-01
    005

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信