如何解决“名称解析暂时失败”问题
有时,当您尝试 ping 网站、更新系统或执行任何需要活动互联网连接的任务时,您可能会在终端上收到错误消息“名称解析暂时失败”。
例如,当您尝试 ping 某个网站时,您可能会遇到显示的错误:
tecmint@ubuntu:~$ ping google.com
ping: linux-console.net: Temporary failure in name resolution
这通常是名称解析错误,表明您的 DNS 服务器无法将域名解析为其各自的 IP 地址。这可能会带来严峻的挑战,因为您将无法在 Linux 系统上更新、升级甚至安装任何软件包。
在本文中,我们将探讨“名称解析暂时失败”错误的一些原因以及该问题的解决方案。
1. resolv.conf 文件丢失或配置错误
/etc/resolv.conf
文件是 Linux 系统中的解析器配置文件。它包含帮助 Linux 系统将域名解析为 IP 地址的 DNS 条目。
如果此文件不存在或存在但仍然出现名称解析错误,请使用 root 权限在文本编辑器中创建或打开 /etc/resolv.conf
文件。
sudo nano /etc/resolv.conf
OR
sudo vim /etc/resolv.conf
接下来,使用 nameserver 关键字添加 Google 的公共 DNS 服务器,后跟 DNS 服务器的 IP 地址。
nameserver 8.8.8.8
nameserver 8.8.4.4
保存更改并重新启动 systemd-resolved 服务,如图所示。
sudo systemctl restart systemd-resolved.service
检查解析器的状态并确保其处于活动状态并按预期运行也是谨慎的做法:
sudo systemctl status systemd-resolved.service
然后尝试 ping 任何网站,问题应该会得到解决。
ping google.com
确认网络连接后,请务必编辑 /etc/resolv.conf
文件,以防止其被网络管理工具覆盖。
为此,您可以创建到 /dev/null 的符号链接:
sudo ln -sf /dev/null /etc/resolv.conf
注意:某些 Linux 发行版,尤其是使用 NetworkManager 的发行版,可能会自动管理 /etc/resolv.conf
文件。如果是这种情况,手动编辑文件可能不会产生持久效果。
相反,您可能需要通过适当的网络管理工具或针对您的特定发行版的配置文件来配置 DNS 设置。请务必查阅您的发行版的文档或支持资源,了解在这种情况下配置 DNS 的推荐方法。
2. 防火墙限制
如果第一个解决方案不适合您,防火墙限制可能会阻止您成功执行 DNS 查询。检查您的防火墙并确认端口 53(用于 DNS – 域名解析)和端口 43(用于 whois 查找)是否已打开。如果端口被阻止,请按如下方式打开它们:
在 UFW 防火墙上打开 DNS 端口
在基于 Debian 的发行版上,您需要通过运行以下命令在 UFW 防火墙上打开端口 53 和 43:
sudo ufw allow 53/tcp
sudo ufw allow 43/tcp
sudo ufw reload
在 FirewallD 防火墙上打开 DNS 端口
在基于 RHEL 的发行版上,您需要通过运行以下命令在 Firewalld 防火墙上打开端口 53 和 43。
sudo firewall-cmd --add-port=53/tcp --permanent
sudo firewall-cmd --add-port=43/tcp --permanent
sudo firewall-cmd --reload
我们希望您现在对“名称解析暂时失败”错误有所了解,以及如何通过几个简单的步骤修复该错误。一如既往,我们非常感谢您的反馈。