解决 Linux 中的 "Temporary Failure in Name Resolution" 错误

Troubleshooting the "Temporary Failure in Name Resolution" Error in Linux

简介

Linux 用户在尝试访问网站或执行网络命令时,可能会遇到 "Temporary failure in name resolution" 错误。 此错误表明系统无法将域名转换为其对应的 IP 地址。 导致此错误的因素有多种,包括网络连接问题、resolv.conf 文件配置不正确以及防火墙限制。 在本指南中,我们将探讨此错误的常见原因,并提供解决方案来帮助您解决此问题。

常见原因和解决方案

网速慢或无网络连接

在进一步进行故障排除之前,务必检查您的网络连接。 网速慢或断开的网络连接可能是 "Temporary failure in name resolution" 错误的根本原因。

解决方案

确认您的系统具有稳定且正常工作的网络连接。 如果您的网络连接速度慢或已断开,请尝试先修复连接问题,然后再继续。

resolv.conf 文件配置错误

resolv.conf 文件负责在 Linux 系统上配置 DNS 服务器。 如果此文件未正确设置,系统可能无法解析域名。

解决方案

首先,在文本编辑器(如 nano)中打开 resolv.conf 文件

sudo nano /etc/resolv.conf

确保在 resolv.conf 文件中定义了至少一个 nameserver。 有效的 nameserver 条目应如下所示

nameserver 8.8.8.8

如果文件中未定义任何 nameserver,请添加一个。 Google 拥有的一些众所周知的 nameserver 是 8.8.8.88.8.4.4。 更改后,保存文件并重新启动 DNS 解析器服务

sudo systemctl restart systemd-resolved.service

通过 ping 网站来验证 DNS 服务器是否正常工作

ping example.com

如果与网站建立了通信,则 DNS 服务器工作正常。

resolv.conf 文件权限配置错误

如果 resolv.conf 文件包含有效的 DNS 服务器,但错误仍然存在,则可能是由于文件权限不正确。

解决方案

将 resolv.conf 文件的所有权更改为 root 用户

sudo chown root:root /etc/resolv.conf

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

sudo chmod 644 /etc/resolv.conf

再次尝试 ping 网站,以检查问题是否已解决。

防火墙限制

防火墙限制可能会阻止对必要端口的访问,从而导致错误。 端口 43(用于 whois 查找)和端口 53(用于域名解析)对于 DNS 查询至关重要。

解决方案

通过运行以下命令,在 Uncomplicated Firewall (UFW) 中打开必要的端口

sudo ufw allow 43/tcp sudo ufw allow 53/tcp

注意:如果默认情况下未启用 UFW,请使用 sudo ufw enable 启用它。

允许端口后,重新加载 UFW 防火墙以应用更改

sudo ufw reload

结论

"Temporary failure in name resolution" 错误可能由多种因素引起,包括网络连接问题、resolv.conf 文件配置错误以及防火墙限制。 通过解决这些常见原因,您可以解决该错误,并在 Linux 系统上成功访问网站和执行网络命令。

George Whittaker 是 Linux Journal 的编辑,也是一位定期撰稿人。 George 从事技术写作已有二十年,并且是 Linux 用户超过 15 年。 在他的空闲时间,他喜欢编程、阅读和游戏。

加载 Disqus 评论