在 CentOS 系统中设置 DNS(域名系统)服务器地址,可以通过多种方法来实现,以下是几种常见的方法:
方法一:使用nmcli
命令行工具
1、查看当前网络连接:使用nmcli con show
命令查看当前的网络连接名称。
2、设置新的 DNS 服务器地址:使用nmcli con mod <YourConnectionName> ipv4.dns "DNS1 DNS2"
命令来设置新的 DNS 服务器地址,如果要将 DNS 设置为 Google 的公共 DNS 服务器(8.8.8.8 和 8.8.4.4),可以使用以下命令:
nmcli con mod YourConnectionName ipv4.dns "8.8.8.8 8.8.4.4"
注意替换<YourConnectionName>
为你的网络连接名称。
3、忽略自动获取的 DNS 服务器:为了避免系统自动获取 DNS 服务器地址,可以添加ipv4.ignoreautodns yes
选项:
nmcli con mod YourConnectionName ipv4.ignoreautodns yes
4、重启网络连接:使用nmcli con up YourConnectionName
命令重启网络连接以使修改生效。
方法二:编辑网卡配置文件
1、打开网卡配置文件:使用文本编辑器(如 vi 或 nano)打开位于/etc/sysconfig/networKScripts/
目录下的网卡配置文件,文件名通常为ifcfgeth0
,其中eth0
是网卡的名称,如果不确定网卡名称,可以使用ifconfig
或ip addr show
命令查看。
2、修改 DNS 设置:在配置文件中找到以DNS1
、DNS2
等为关键字的行,并将其值设置为您希望使用的 DNS 服务器地址。
DNS1=8.8.8.8 DNS2=8.8.4.4
如果文件中包含PEERDNS=yes
,并且您希望使用静态设置的 DNS,而不是 DHCP 分配的 DNS,需要将其更改为PEERDNS=no
。
3、保存并退出:保存文件并退出编辑器。
4、重启网络服务:使用systemctl restart network
命令重启网络服务以使新的 DNS 设置生效。
方法三:修改 /etc/resolv.conf 文件
尽管直接编辑/etc/resolv.conf
文件可以更改 DNS 服务器设置,但在使用 NetworkManager 的系统中,这些更改可能不会持久,因为 NetworkManager 可能会覆盖该文件,这种方法通常不推荐用于长期配置,不过,如果您仍然想尝试这种方法,可以按照以下步骤操作:
1、编辑 /etc/resolv.conf 文件:使用文本编辑器打开/etc/resolv.conf
文件。
2、添加或修改 nameserver 行:在文件中添加或修改nameserver
行以包括所需的 DNS 服务器地址。
nameserver 8.8.8.8 nameserver 8.8.4.4
3、保存并关闭文件。
4、阻止 NetworkManager 修改 /etc/resolv.conf 文件:为了确保修改能持续生效,需要阻止 NetworkManager 对该文件进行修改,这可以通过编辑/etc/NetworkManager/NetworkManager.conf
文件并添加或修改[main]
部分中的dns=none
设置来实现,重新启动 NetworkManager 服务以使设置生效。
5、验证新设置是否生效:通过运行ping www.google.com
等命令来测试新设置是否生效。
FAQs
问题1:在 CentOS 中如何查看当前的 DNS 配置?
答:在 CentOS 中,可以通过查看/etc/resolv.conf
文件来查看当前的 DNS 配置,使用cat /etc/resolv.conf
命令即可显示该文件的内容,其中包含了当前配置的 DNS 服务器地址。
问题2:为什么直接编辑 /etc/resolv.conf 文件的方法不推荐用于长期配置?
答:直接编辑/etc/resolv.conf
文件的方法不推荐用于长期配置,因为在使用 NetworkManager 的系统中,这些更改可能不会持久,NetworkManager 是一个网络管理工具,它负责管理网络连接和配置,包括 DNS 设置,当 NetworkManager 启动或重新配置网络时,它可能会覆盖/etc/resolv.conf
文件中的手动更改,导致 DNS 设置恢复到默认状态或根据其他配置源进行更新,为了确保 DNS 设置的持久性,建议使用 NetworkManager 或其他更稳定的方法来配置 DNS。