/etc/resolv.conf
文件,添加或更改 nameserver
行来指定新的 DNS 服务器 IP 地址。一、查看当前 DNS 设置
1、使用cat /etc/resolv.conf
打开终端,输入命令cat /etc/resolv.conf
,可查看系统当前使用的 DNS 服务器列表。
主要关注nameserver
部分,其中的 IP 就是当前配置的 DNS 服务器地址,如果输出中包含nameserver 8.8.8.8
,则表示当前已配置了 Google 的公共 DNS 服务器。
2、使用nmcli dev show | grep IP4.DNS
(适用于 NetworkManager)
若系统使用 NetworkManager 管理网络连接,可通过此命令查看指定网络接口的 DNS 设置,要查看名为 “eth0” 的网络接口的 DNS 配置,可输入nmcli dev show eth0 | grep IP4.DNS
。
二、临时修改 DNS
1、编辑/etc/resolv.conf
文件
使用文本编辑器打开/etc/resolv.conf
文件,如sudo vi /etc/resolv.conf
。
添加或修改nameserver
行以指定新的 DNS 服务器地址,若要使用 Google 的公共 DNS 服务器,可添加以下两行:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存并关闭文件后,修改立即生效,但重启系统后配置会丢失。
2、通过命令行参数临时指定 DNS(适用于 NetworkManager)
可以使用nmcli con mod
命令临时修改指定网络连接的 DNS 服务器地址,要将名为 “eth0” 的网络连接的 DNS 服务器修改为 8.8.8.8 和 8.8.4.4,可执行以下命令:
nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod eth0 ipv4.ignoreautodns yes
然后重新启动网络连接使修改生效,如nmcli con up eth0
,不过这种方式重启系统后也会失效。
三、永久修改 DNS
1、通过 NetworkManager 配置文件(适用于 NetworkManager)
编辑 NetworkManager 的配置文件/etc/NetworkManager/NetworkManager.conf
,在[main]
部分添加或修改dns=none
,即:
[main]
dns=none
保存文件后,重启 NetworkManager 服务,使设置生效,命令为sudo systemctl restart NetworkManager
。
之后按照上述临时修改 DNS 的方法,通过nmcli
命令或编辑/etc/resolv.conf
文件来设置永久有效的 DNS。
2、编辑网卡配置文件
找到对应网卡的配置文件,通常位于/etc/sysconfig/networkscripts/
目录下,文件名为ifcfg网卡名称
,例如ifcfgeth0
。
使用文本编辑器打开该文件,如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
。
保存文件并退出编辑器,然后重新启动网络服务使新的 DNS 设置生效,命令为sudo systemctl restart network
。
3、修改/etc/resolvconf/resolv.conf.d/base
文件(适用于某些 CentOS 版本)
进入/etc/resolvconf/resolv.conf.d/
目录,编辑base
文件,如sudo vi base
。
添加nameserver
行指定所需的 DNS 服务器 IP 地址,
nameserver 8.8.8.8
nameserver 8.8.4.4
保存并关闭文件后,运行sudo resolvconf u
或者重启网络服务sudo systemctl restart network
来应用新的 DNS 设置。
四、验证 DNS 配置是否生效
1、使用ping
命令
尝试 ping 一个域名,如ping www.google.com
,如果能收到响应,则说明 DNS 正在正常工作。
2、使用nslookup
命令
输入nslookup example.com
,将example.com
替换为需要查询的域名,如果输出的结果中包含了之前设置的 DNS 服务器的 IP 地址,则表示 DNS 配置已经生效。
3、清空 DNS 缓存
为确保立即看到新的 DNS 设置效果,可使用sudo systemdresolve flushcaches
清除 DNS 缓存。
五、相关问题与解答
1、问题:修改完 DNS 后无法立即生效怎么办?
解答:如果只是修改了/etc/resolv.conf
文件,可能需要重启 NetworkManager 服务或者重启系统才能使修改生效,可以通过sudo systemctl restart NetworkManager
命令重启 NetworkManager 服务,检查是否有其他网络管理工具或服务在影响 DNS 设置,如一些自定义的脚本或防火墙规则等。
2、问题:如何恢复默认的 DNS 设置?
解答:如果是通过修改/etc/resolv.conf
文件来设置的 DNS,只需将其内容恢复为原始状态即可,如果是通过 NetworkManager 或其他方式设置的,可根据具体的设置方法进行反向操作,如果是在 NetworkManager 中修改的,可以再次使用nmcli con mod
命令将 DNS 服务器地址改回自动获取或之前的设置,然后重新启动网络连接。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/132484.html