在Linux系统中,有时候当我们想尝试ping网站、更新系统或执行任何需要活动互联网连接的任务时,可能会在终端上收到“Temporary failure in name resolution”错误消息提示。
例如,当你尝试ping网站时,可能会遇到显示的错误:
tecmint@ubuntu:~$ ping baidu.com ping: ecscoupon.com: Temporary failure in name resolution
这通常是名称解析错误,表明你的DNS服务器无法将域名解析为其各自的IP地址。这可能会带来非常不好的影响,因为你将无法在Linux系统上更新、升级甚至安装任何软件包。
在本文中,小编主要介绍“temporary failure in name resolution”错误的一些原因以及此问题的解决方案,希望能够帮助到大家。
1、resolv.conf文件丢失或配置错误
/etc/resolv.conf
文件是Linux系统中的解析器配置文件,它包含帮助Linux系统将域名解析为IP地址的DNS条目。如果该文件不存在或存在但仍然出现名称解析错误,请使用root权限在文本编辑器中创建或打开/etc/resolv.conf
文件。
$ sudo nano /etc/resolv.conf 或 $ sudo vim /etc/resolv.conf
接下来,使用nameserver关键字添加Google的公共DNS服务器(或其它可用的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 baidu.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
总结
以上就是对Linux系统出现“Temporary failure in name resolution”错误的原因分别和解决方法,通过以上几个简单的步骤就可以修复该错误。如果大家在使用Linux系统时出现以上错误,可以按照上述方法尝试解决。
简单来说,”Temporary failure in name resolution” 错误信息通常表示Linux系统在域名解析过程中出现问题。简单来说,这意味着系统无法将域名解析为相应的IP地址。其常见的原因包括DNS服务器问题、网络连接问题和防火墙或网络设置问题,所以需要具体分析原因,然后找到相应的解决方案。