如何解决错误Temporary failure in name resolution?

2021年11月21日04:19:41 发表评论 14,765 次浏览

介绍

当系统无法将网站名称转换为 IP 地址时,会出现“Temporary failure in name resolution”错误。虽然错误有时是由于互联网连接丢失而出现的,但它可能会出现在你的系统上的原因有多种。

本教程将指导你排除故障并修复Temporary failure in name resolution错误。

先决条件

  • Sudo 或 root 权限
  • 有效的互联网连接

当用户尝试使用诸如ping 之类的命令与网站通信时,会出现该错误:

ping lsbin.com

系统无法与 DNS 服务器通信并返回错误。

如何解决错误Temporary failure in name resolution?

此错误的最常见原因是resolv.conf网络配置文件和错误配置的防火墙。下面给出了在这两种情况下修复错误的步骤。

方法 1:错误配置的 resolv.conf 文件

resolv.conf 是用于在 Linux 系统上配置 DNS 服务器的文件。

Temporary failure in name resolution解决办法:首先,在文本编辑器(例如 nano)中打开文件。

sudo nano /etc/resolv.conf

确保该resolv.conf文件至少包含一个名称服务器。列出名称服务器的行应如下所示:

nameserver 8.8.8.8

如果文件中没有列出名称服务器,请至少添加一个。8.8.8.8并且8.8.4.4是 Google 拥有的流行名称服务器,但你可以将任何功能性 DNS 服务器添加到此列表中。

如何解决错误Temporary failure in name resolution?

保存文件并退出。

然后,重新启动 DNS 解析器服务。

sudo systemctl restart systemd-resolved.service

如果成功,上面的命令不返回任何输出。通过 ping 网站来测试你的新名称服务器是否已正确配置:

ping lsbin.com

如果你看到ping 命令发送和接收数据,则你的 DNS 服务器工作正常。

如何解决错误Temporary failure in name resolution?

权限配置错误

修复Temporary failure in name resolution:如果你的resolv.conf文件包含有效的 DNS 服务器,但错误仍然存​​在,则可能是由于文件权限配置错误。使用以下命令将文件的所有权更改为 root 用户:

sudo chown root:root /etc/resolv.conf

修改用户权限,允许系统上的所有人读取文件:

sudo chmod 644 /etc/resolv.conf

再次ping一个网站。

ping lsbin.com

如果错误的文件权限导致错误,则上述命令成功解决。

方法二:防火墙限制

“Temporary failure in name resolution”错误的另一个原因可能是防火墙阻止了以下一个或两个端口:

  • 端口 43,用于whois 查询
  • 53端口,用于域名解析

在 UFW 防火墙中打开端口

Temporary failure in name resolution解决办法:键入以下命令以允许使用UFW 防火墙的端口 43 上的流量:

sudo ufw allow 43/tcp

UFW 确认规则已成功更新。

如何解决错误Temporary failure in name resolution?

对端口 53 重复该命令。

sudo ufw allow 53/tcp

使用以下命令重新加载 UFW:

sudo ufw reload

输出确认操作成功。

如何解决错误Temporary failure in name resolution?

在 firewalld 中打开端口

修复Temporary failure in name resolution:某些 Linux 发行版(例如CentOS)使用 firewalld作为其默认防火墙。在 firewalld 中打开端口 43 的语法是:

sudo firewall-cmd --add-port=43/tcp --permanent

firewalld 输出单词success.

如何解决错误Temporary failure in name resolution?

对端口 53 重复该命令。

sudo firewall-cmd --add-port=53/tcp --permanent

重新加载防火墙。

sudo firewall-cmd --reload
如何解决错误Temporary failure in name resolution?

通过 ping 网站来测试连接。

ping lsbin.com

结论

本文提供了对 Linux 上的“Temporary failure in name resolution”错误进行故障排除和修复的方法。要了解有关诊断 DNS 相关问题的更多信息,请阅读如何使用 Linux dig 命令。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: