CentOS中如何通过ifcfg文件配置DNS服务器地址?

在 CentOS 系统中,网络配置是服务器管理的基础,DNS(域名系统)配置至关重要,它负责将人类易于记忆的域名(如 www.google.com)解析为机器能够识别的 IP 地址,在传统的 CentOS 版本(如 6 和 7)中,通过 ifcfg 系列文件进行网络和 DNS 配置是一种非常普遍且稳定的方法,本文将详细介绍如何在 CentOS 中通过 ifcfg 文件来配置 DNS。

CentOS中如何通过ifcfg文件配置DNS服务器地址?

理解 ifcfg 配置文件

CentOS 的网络接口配置文件通常存放在 /etc/sysconfig/network-scripts/ 目录下,每个网络接口都有一个对应的配置文件,命名规则为 ifcfg-<interface_name>ifcfg-eth0ifcfg-ens33,这些文件定义了接口的各种属性,包括 IP 地址、子网掩码、网关以及我们关注的 DNS 服务器。

通过编辑这些文件,我们可以实现对网络接口的静态或动态配置,对于 DNS 设置,我们主要关注文件内的 DNS1DNS2 参数。

ifcfg 文件中配置 DNS

要为特定网络接口配置 DNS,你需要编辑其对应的 ifcfg 文件,以下是详细的步骤和示例。

找到并编辑配置文件

使用 ip addrifconfig 命令确定你的网络接口名称,假设接口名为 ens33,那么配置文件就是 /etc/sysconfig/network-scripts/ifcfg-ens33

使用文本编辑器(如 vinano)打开该文件:

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

添加或修改 DNS 参数

在文件中,找到或添加 DNS1DNS2 这两行。DNS1 代表首选 DNS 服务器,DNS2 代表备用 DNS 服务器,你可以使用公共 DNS 服务,如 Google 的 8.8.8 或 Cloudflare 的 1.1.1

一个典型的静态配置文件示例如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=1.1.1.1

在这个例子中,我们设置了静态 IP 地址,并指定了首选 DNS 为 8.8.8,备用 DNS 为 1.1.1,如果你的网络是动态获取 IP(BOOTPROTO=dhcp),DHCP 服务器会自动提供 DNS 信息,但你仍然可以在这里设置 DNS1DNS2,它们会覆盖 DHCP 提供的值。

CentOS中如何通过ifcfg文件配置DNS服务器地址?

重启网络服务

保存并关闭文件后,必须重启网络服务才能使更改生效,根据你的 CentOS 版本,可以使用以下命令之一:

对于 CentOS 7:

systemctl restart network

或者使用 NetworkManager 的命令行工具:

nmcli connection reload
nmcli connection up ens33

/etc/resolv.conf 的角色

当你在 ifcfg 文件中配置了 DNS1DNS2 并重启网络后,系统会自动将这些信息写入到 /etc/resolv.conf 文件中,这个文件是 Linux 系统中实际用于 DNS 解析的配置文件。

你可以通过以下命令查看其内容:

cat /etc/resolv.conf

会类似于:

# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 1.1.1.1

重要提示:不建议直接手动编辑 /etc/resolv.conf 文件,因为每次网络服务重启时,它都会被 ifcfg 文件或 NetworkManager 的配置所覆盖,正确的做法始终是修改源配置文件(即 ifcfg 文件或通过 nmcli)。

验证 DNS 配置

配置完成后,你需要验证 DNS 是否正常工作,可以使用 nslookupdig 命令来测试域名解析。

CentOS中如何通过ifcfg文件配置DNS服务器地址?

nslookup www.baidu.com

如果命令能够成功返回 www.baidu.com 对应的 IP 地址,说明你的 DNS 配置已经生效并且工作正常。


相关问答 FAQs

问题 1:我修改了 /etc/resolv.conf 文件,但重启网络后配置又变回去了,为什么?

解答:这是正常现象,在现代的 CentOS 版本中,/etc/resolv.conf 文件通常是由网络管理服务(如 NetworkManager)动态生成的,当网络服务启动或重启时,它会根据 ifcfg-<interface> 文件中的 DNS1DNS2 参数(或其他 NetworkManager 配置)来重写 /etc/resolv.conf,直接手动编辑该文件的更改是临时的,要永久修改 DNS 设置,你应该编辑 /etc/sysconfig/network-scripts/ 目录下的对应 ifcfg 文件,或者使用 nmcli 等工具进行配置。

问题 2:DNS1DNS2 有什么区别?我可以只设置一个吗?

解答DNS1 是系统首选的 DNS 服务器,当需要解析域名时,系统会首先向 DNS1 发送请求。DNS2 是备用 DNS 服务器,只有在 DNS1 无法响应(例如服务器宕机或网络不通)时,系统才会尝试向 DNS2 发送请求,你可以只设置 DNS1,系统依然可以正常工作,为了提高网络解析的可靠性和可用性,强烈建议同时设置 DNS2,这样即使首选 DNS 服务器出现问题,你的服务器仍然可以通过备用 DNS 服务器进行域名解析,避免服务中断。

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

Like (0)
小编小编
Previous 2025年10月5日 09:01
Next 2025年10月5日 09:28

相关推荐

发表回复

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