/etc/resolv.conf
添加DNS服务器地址虚拟机CentOS设置DNS
在虚拟机中运行的CentOS系统,设置合适的DNS服务器是确保网络连接和域名解析正常的关键步骤,以下将详细介绍如何在CentOS系统中设置DNS,包括通过NetworkManager、修改网卡配置文件以及直接编辑/etc/resolv.conf
文件等多种方法。
准备工作
- 确认网络连接:确保虚拟机与外部网络或宿主机之间的网络连接正常,能够访问到需要设置的DNS服务器。
- 获取管理员权限:设置DNS通常需要root权限或使用具有sudo权限的用户操作。
通过NetworkManager设置DNS
(一)查看网络连接名称
在终端中输入以下命令,查看当前系统的网络连接名称:
nmcli con show
输出示例可能如下: | NAME | UUID | TYPE | DEVICE | ||||| | MyConnection | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | 8023ethernet | eth0 |
假设我们的网络连接名称为“MyConnection”。
(二)设置DNS服务器地址
使用以下命令设置新的DNS服务器地址,将“MyConnection”替换为你的实际网络连接名称,“DNS1”和“DNS2”替换为你想要使用的DNS服务器地址(例如Google的公共DNS服务器8.8.8.8和8.8.4.4):
nmcli con mod MyConnection ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod MyConnection ipv4.ignoreautodns yes
(三)重新启动网络连接
nmcli con up MyConnection
(四)验证设置是否成功
使用以下命令查看网络连接的DNS配置信息:
nmcli dev show | grep DNS
如果输出中包含你刚刚设置的DNS服务器地址,则说明设置成功。
通过修改网卡配置文件设置DNS
(一)找到网卡配置文件
网卡配置文件通常位于/etc/sysconfig/networkscripts/
目录下,文件名以“ifcfg”开头,后面跟着网卡名称,如果你的网卡名称为eth0,则配置文件为/etc/sysconfig/networkscripts/ifcfgeth0
。
(二)编辑网卡配置文件
使用文本编辑器(如vi)打开相应的配置文件:
sudo vi /etc/sysconfig/networkscripts/ifcfgeth0
在文件中查找以“DNS1”、“DNS2”等为关键字的行,如果不存在则添加它们,并设置其值为你想要使用的DNS服务器地址。
DNS1=8.8.8.8
DNS2=8.8.4.4
如果文件中包含“PEERDNS=yes”,并且你想要使用静态设置的DNS而不是DHCP分配的DNS,需要将其更改为“PEERDNS=no”。
(三)保存文件并退出编辑器
(四)重新启动网络服务
sudo systemctl restart network
(五)验证设置是否成功
可以使用以下命令测试DNS是否正常工作:
ping www.google.com
如果能收到响应,则说明DNS正在正常工作。
通过修改/etc/resolv.conf文件设置DNS
(一)编辑/etc/resolv.conf文件
sudo vi /etc/resolv.conf
在文件中添加或修改“nameserver”行以包括所需的DNS服务器地址。
nameserver 8.8.8.8
nameserver 8.8.4.4
(二)保存并关闭文件
(三)注意事项
在大多数情况下,直接编辑/etc/resolv.conf
文件设置的DNS可能在重启网络服务或系统后失效,因为NetworkManager可能会覆盖该文件,为了确保修改能持续生效,还需要进行以下操作:
(四)阻止NetworkManager修改/etc/resolv.conf文件
编辑NetworkManager的配置文件:
sudo vi /etc/NetworkManager/NetworkManager.conf
在文件中添加或修改[main]
部分,设置dns=none
:
[main]
dns=none
(五)重新启动NetworkManager以使设置生效
sudo systemctl restart NetworkManager
常见问题与解答
(一)问题1:设置DNS后无法解析域名怎么办?
- 检查DNS服务器地址是否正确:确保你设置的DNS服务器地址是可用的,可以尝试使用其他已知可用的DNS服务器进行测试。
- 检查网络连接是否正常:确保虚拟机与外部网络或宿主机之间的网络连接正常,能够访问到DNS服务器,可以尝试ping其他网络地址来验证网络连接。
- 检查防火墙设置:如果防火墙阻止了对DNS服务器的访问,也会导致无法解析域名,可以暂时关闭防火墙进行测试,或者配置防火墙允许对DNS服务器的访问。
- 查看日志文件:查看系统日志文件(如
/var/log/messages
)中是否有与DNS相关的错误信息,以便进一步排查问题。
(二)问题2:如何恢复默认的DNS设置?
- 通过NetworkManager恢复默认设置:如果之前是通过NetworkManager设置的DNS,可以打开NetworkManager的配置文件
/etc/NetworkManager/NetworkManager.conf
,找到之前添加或修改的DNS相关配置项,将其删除或恢复为默认值,然后重新启动NetworkManager服务:sudo systemctl restart NetworkManager
- 通过修改网卡配置文件恢复默认设置:如果之前是通过修改网卡配置文件设置的DNS,可以打开相应的网卡配置文件(如
/etc/sysconfig/networkscripts/ifcfgeth0
),删除或注释掉之前添加的DNS相关行(如“DNS1=”“DNS2=”等),然后重新启动网络服务:sudo systemctl restart network
- 通过修改/etc/resolv.conf文件恢复默认设置:如果之前是直接编辑
/etc/resolv.conf
文件设置的DNS,可以将文件中的内容恢复为默认值,通常情况下,默认的/etc/resolv.conf
文件可能包含本地的DNS服务器地址或者其他默认的配置,如果不确定默认值是什么,可以尝试将文件内容清空,然后让系统自动生成默认配置(但这种方法可能会导致暂时无法解析域名