50% 折扣 所有计划,时间有限。开始于 $2.48/mo
还剩 12 分钟
安全与网络

名称解析暂时失败:这意味着什么以及如何修复?

雷克萨·赛勒斯 By 雷克萨·赛勒斯 阅读时间 12 分钟 更新于 89 天前
DNS 服务器故障排除指南插图,其中包含警告符号和深色背景上的蓝色服务器,用于 Linux 名称解析错误

使用 Linux 时,在尝试访问网站、更新包或执行需要 Internet 连接的任务时,您可能会遇到名称解析错误的临时故障。此错误表明您的系统无法将域名解析为 IP 地址,从而导致网络操作无法成功完成。

此问题通常源于互联网连接问题或 DNS 配置问题。排除故障并修复此错误非常简单且直接。在本指南中,我们将解释您需要了解的有关在不同 Linux 发行版上解决此错误的所有信息。我们将介绍 Ubuntu 22.04 和 24.04 的具体修复。

名称解析暂时失败意味着什么?

名称解析暂时失败会导致您的 Linux 系统无法正确连接到互联网。发生这种情况时,您无法访问需要有效互联网连接的网站或使用应用程序。

它充当 DNS 的一般“重试”故障。查找在链中的某个位置失败,可能是本地故障、上游超时或验证问题。

当尝试 ping 网站时,您通常会看到此错误:

终端窗口显示 google.com 的 ping 命令,导致出现红色文本的“名称解析暂时失败”错误消息

ping google.com

ping: google.com: Temporary failure in name resolution

如何解决名称解析暂时失败的问题

根据其根本原因,有多种方法可以解决此错误。让我们探讨一下主要的解决方案。

解决方案 1:检查互联网连接

检查您的路由器和网络硬件,确保一切设置正确。尝试打开其他应用程序以确认您可以通过它们建立互联网连接。

您可以通过直接 ping IP 地址来测试基本连接:

ping -c 4 8.8.8.8

该命令向 Google 的公共 DNS 服务器发送四个数据包。如果您收到回复,则表明您的互联网连接正常。

如果您看到“请求超时”或“网络无法访问”,则说明您遇到了与 DNS 无关的一般连接问题。

拆分终端比较显示对 Google.com 域的 ping 失败与对 Google IP 地址 8.8.8.8 的 ping 响应成功

如果应用程序成功连接到互联网,请继续执行下一个解决方案。

解决方案 2:resolv.conf 文件配置错误

/etc/resolv.conf 文件列出了您的系统使用的 DNS 服务器。如果此文件包含错误的 IP 地址,您将无法连接到网站。

在许多 Ubuntu 系统上,此文件是由 systemd-resolved 管理的动态文件的链接。它通常包含一个警告:“请勿编辑。”但是,如果您直接编辑此文件,您的更改可能只会持续几分钟。系统在更新网络设置或重新启动时会覆盖它们。

在配置 DNS 设置之前,请确保您的系统用户具有管理权限。了解如何 将用户添加到 sudoers 如果需要的话。

检查当前 DNS 配置

检查您的 DNS 设置而不先更改它们:

cat /etc/resolv.conf

如果您没有看到有效的名称服务器,则说明您已发现问题。

临时测试

您可以添加 Google 的 DNS 服务器进行快速测试。

nameserver 8.8.8.8

nameserver 8.8.4.4

或者,您可以使用 Cloudflare 的 DNS 服务器:

终端文本编辑器显示 Ubuntu 系统的 resolv.conf 配置文件以及 Google DNS 名称服务器 8.8.8.8 和 8.8.4.4 条目 

nameserver 1.1.1.1

nameserver 1.0.0.1

以下是流行的公共 DNS 服务器的比较:

四个流行 DNS 提供商的比较图:Google DNS、Cloudflare、Quad9 和 OpenDNS,及其 IP 地址和功能

DNS提供商 主 DNS 辅助 DNS 主要特点
谷歌域名系统 8.8.8.8 8.8.4.4 高可用性、全球覆盖
云耀 1.1.1.1 1.0.0.1 注重隐私,不记录 IP
四方9 9.9.9.9 149.112.112.112 阻止已知恶意域
开放DNS 208.67.222.222 208.67.220.220 网络钓鱼防护、内容过滤

但这并不是永久性的。系统将擦除这些更改。要在 Ubuntu 上进行持久修复,您必须配置 systemd 解析 或网络计划。我们将在下面的具体部分中介绍这些步骤。

验证 Systemd 解析的服务状态。

如果您的名称服务器看起来正确,但解析仍然失败,请检查 systemd 解析 服务。该服务管理大多数现代 Linux 系统上的本地 DNS 查找。使用此命令查看它是否正在运行: sudo systemctl 状态 systemd-resolved

如果输出显示该服务处于非活动状态,您可以立即启动它。

sudo systemctl 启动 systemd-resolved

这一步对于 Ubuntu 用户来说是必须知道的,因为服务中断经常会引发名称解析失败。

解决方案 3:防火墙限制

防火墙可以保护您的 Linux 系统免受恶意软件和安全威胁。但是,不正确的防火墙配置可能会阻止 DNS 请求,从而导致名称解析错误。

一种诊断方法是暂时禁用防火墙和安全软件,以确定它们是否导致问题。如果禁用防火墙可以解决问题,您需要重新配置防火墙设置。

配置 UFW 防火墙

大多数 Debian 和 Ubuntu 发行版都使用 UFW防火墙。您必须允许端口 53 上的 DNS 流量(UDP 和 TCP):

sudo ufw allow 53/udp

sudo ufw allow 53/tcp

DNS 依赖 UDP 进行标准查询,依赖 TCP 进行较大的传输。

打开这些端口后,重新加载 UFW 以应用更改:

Ubuntu 系统防火墙图显示 UFW 配置允许 DNS 流量通过端口 43 和 53 到达云 DNS 服务器

须藤 ufw 重新加载

配置Firewalld

对于使用firewalld的CentOS和基于Red Hat的系统,打开必要的端口:

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

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

重新加载防火墙以应用更改:

sudo firewall-cmd --reload

解决方案 4:刷新 DNS 缓存

DNS 缓存在本地存储 IP 地址以加快将来的查找速度。但是,过时或损坏的 DNS 缓存数据可能会阻止您访问已更改域名或托管提供商的网站,从而导致名称解析错误暂时失败。

只有你 清除 DNS 缓存 当您想强制系统请求新数据时。当您遇到解析错误时,请使用此步骤。

使用 systemd-resolved 服务重启命令的 DNS 缓存清除过程的可视化表示,其中缓存的数据块被刷新

识别您的 DNS 服务

服务因安装而异。检查哪一个正在运行以避免“未找到单元”错误:

sudo systemctl is-active nscd

sudo systemctl is-active dnsmasq

冲洗 NSCD

If NSCD 处于活动状态,重新启动它:

sudo systemctl restart nscd.service

刷新 dnsmasq

If 域名解析 处于活动状态,重新启动它:

sudo systemctl restart dnsmasq.service

Ubuntu 上的刷新缓存(systemd 解析)

对于使用 systemd-resolved 的系统:

sudo systemctl restart systemd-resolved.service

或者使用resolvctl命令:

sudo resolvectl flush-caches

了解名称解析

当您输入像 cloudzy.com 这样的网站地址时,您的计算机必须将这个人类可读的域转换为 IP 地址(例如 172.66.40.212),以便在互联网上找到该网站。这个转换过程称为名称解析,由 DNS 服务器处理。

当您的 Linux 系统无法联系 DNS 服务器来检索网站相应的 IP 地址时,就会出现名称解析临时失败错误。 “临时”名称表明这不一定是永久性故障。大多数情况下,它是由可以解决的配置或连接问题引起的。

DNS 服务器将域名转换为计算机用于通信的 IP 地址。 Google 公共 DNS 句柄 超过一万亿 每天的查询,体现了这一重要互联网服务的规模。

同样,Cloudflare 的 1.1.1.1 解析器进程 每天近 2 万亿次查询。本卷证明 DNS 是互联网的关键。

名称解析暂时失败的原因是什么?

确定根本原因是解决 Ubuntu 名称解析错误暂时失败的第一步。有几个因素可能会引发此问题。

显示常见 DNS 错误原因的四面板图:以太网电缆断开、DNS 服务器配置错误、防火墙阻止端口 53、缓存损坏

互联网连接问题

互联网连接缓慢或丢失通常是罪魁祸首。在深入进行复杂的故障排除之前,请验证您的互联网连接是否正常工作。

DNS 配置问题

DNS 配置错误是此错误的最常见来源之一:

  • DNS 服务器无响应:您的系统尝试访问的 DNS 服务器可能不可用
  • DNS解析配置错误:可能是DNS解析机制配置不当
  • 过时的 DNS 缓存:旧的或损坏的 DNS 缓存条目可能会妨碍正确解析

防火墙限制

即使配置正确,防火墙配置也可能阻止 DNS 请求。 DNS 查询使用 端口53,如果您的防火墙阻止此端口,名称解析将失败。

端口 53 处理 UDP 和 TCP 协议。 DNS 通常使用 UDP 端口 53 进行标准查询,因为它速度更快。 TCP 端口 53 用于区域传输和超出 UDP 大小限制的较大查询。

服务配置问题

在现代 Linux 发行版中管理 DNS 解析的 systemd-resolved 服务可能会被停止、禁用或配置错误。此服务为系统上的所有应用程序提供 DNS 解析。

Ubuntu 22.04 名称解析暂时失败

Ubuntu 22.04 LTS 引入了网络管理更改,可能会导致 DNS 解析问题,尤其是在系统升级之后。在此版本上,用户可能会更频繁地遇到 Ubuntu 无法解析主机、名称解析临时失败的错误。

Ubuntu 22.04 常见问题

从 Ubuntu 20.04 升级到 22.04 的用户经常报告 DNS 解析失败。 Ubuntu 22.04 名称解析问题暂时失败通常源于升级过程中发生的 systemd 解析的服务配置错误。

Ubuntu 22.04 特定修复

如果您在 Ubuntu 22.04 上遇到持续的 DNS 问题,请按照以下步骤操作:

首先,验证 systemd 网络服务是否已正确启用:

sudo systemctl unmask systemd-networkd.service

sudo systemctl unmask systemd-resolved.service

检查 systemd-resolved 的状态:

Ubuntu 22.04 系统清单显示 systemd-networkd 服务、systemd-resolved 服务和 resolv.conf 符号链接配置的三个绿色复选标记

sudo systemctl status systemd-resolved.service

如果该服务处于非活动状态,请启动它:

sudo systemctl start systemd-resolved.service

sudo systemctl enable systemd-resolved.service

验证您的 /etc/resolv.conf 符号链接指向正确的位置:

ls -l /etc/resolv.conf

推荐的配置链接到存根解析器:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

测试修复

进行这些更改后,测试 DNS 解析:

resolvectl status

此命令显示您当前的 DNS 配置。它还确认 systemd-resolved 正在正确管理 DNS。

Ubuntu 24.04 名称解析暂时失败

Ubuntu 24.04 LTS 是最新的长期支持版本,使用 systemd 255 并包含更新的网络管理组件。虽然比以前的版本更稳定,但仍然可能会出现特定的 DNS 问题。 

远程管理员经常面临“SSH 无法解析主机名”错误。当系统存根解析器位于 127.0.0.53 失败。由于 SSH 依赖此本地服务进行名称转换,因此停止 systemd 解析 进程立即阻止所有基于域的连接尝试。

Ubuntu 24.04 DNS 配置

Ubuntu 24.04 严重依赖 systemd-resolved 进行 DNS 管理。 127.0.0.53 上的存根侦听器处理系统的 DNS 查询。

修复 Ubuntu 24.04 中的 DNS 问题

如果您在 Ubuntu 24.04 上遇到名称解析失败,请检查 systemd-resolved 是否正在运行:

sudo systemctl status systemd-resolved

使用resolvctl验证DNS配置:

resolvectl status

这将显示每个网络接口的名称服务器信息和 DNS 配置。

Ubuntu 24.04 网络规划配置

Ubuntu 24.04 使用 Netplan 进行网络配置。文件名和渲染器设置取决于您使用的是服务器版本还是桌面版本。

首先,确定您的配置文件:

ls /etc/netplan/

编辑您找到的文件(通常 50-cloud-init.yaml or 00-installer-config.yaml):

sudo nano /etc/netplan/YOUR_FILE_NAME.yaml

验证您的 DNS 设置。 笔记: 服务器通常使用 网络化,而桌面安装使用 网络管理器。检查您的接口名称(例如, 以太网0 or 恩斯3) 使用 IP地址 编辑之前。

network:

  version: 2

  renderer: networkd

  ethernets:

    eth0:

      dhcp4: yes

      nameservers:

        addresses: [8.8.8.8, 8.8.4.4]

应用配置:

Ubuntu 24.04 Netplan YAML 配置显示 DNS 名称服务器设置,网络图显示 VPC DNS 服务器连接sudo netplan apply

存根侦听器问题

某些应用程序可能与端口 53 上的 systemd-resolved 的存根侦听器发生冲突。如果需要禁用存根侦听器:

sudo mkdir -p /etc/systemd/resolved.conf.d/

创建配置文件:

echo -e "[Resolve]\nDNSStubListener=no" | sudo tee /etc/systemd/resolved.conf.d/noresolved.conf

重启systemd解决:

sudo systemctl restart systemd-resolved.service

其他故障排除提示

如果错误仍然存​​在,请使用这些工具来隔离问题。您需要确定问题是否来自您的网络连接、DNS 服务器本身或本地文件冲突。

验证 DNS 服务器的可访问性

您应该测试您的系统是否可以访问配置中列出的特定 DNS 服务器。使用 命令后跟主名称服务器的 IP 地址:

ping -c 4 <your_dns_server_ip>

如果失败,则表明您存在网络连接问题。 

检查 /etc/hosts 文件

/etc/hosts 文件可以覆盖 DNS 查找。此处的错误输入可能会导致解析失败:

sudo nano /etc/hosts

验证它至少包含:

127.0.0.1 本地主机

127.0.1.1 你的主机名

使用 dig 进行 DNS 诊断

dig 命令有助于诊断 DNS 问题:

dig google.com

这显示了详细的 DNS 查询信息,包括哪个名称服务器响应以及查询花费了多长时间。

dig 命令查询 google.com 的终端输出,显示详细的 DNS 解析信息,包括 IP 地址和查询统计信息

检查网络接口配置

验证您的网络接口配置是否正确:

ip addr show

确保您的主网络接口已分配 IP 地址。

防止未来出现 DNS 问题

修复立即错误可以恢复访问,但您需要一个弹性设置来阻止它返回。这些做法在您的网络配置中构建了冗余,以便您的系统可以处理较小的连接丢失而不会丢失名称解析。

网络可靠性取决于硬件质量。我们的云兹 Linux虚拟专用服务器 运行在高频 AMD Ryzen 9 处理器和 40 Gbps 连接上。这种原始速度最大限度地减少了经常导致解析失败的延迟和超时,确保您的应用程序保持可访问性。

使用可靠的 DNS 服务器

您应该通过 Netplan 或配置多个名称服务器 systemd 解析 而不是编辑 /etc/resolv.conf 直接地;这是为了让您的设置在重新启动后保持不变。添加辅助IP,例如 1.1.1.1 or 8.8.4.4 如果您的主要提供商失败,则会产生冗余。

监控系统更新

DNS 配置可能会在系统更新后更改。更新 Linux 发行版后,验证 DNS 解析是否仍然正常工作。

记录您的配置

保留您的 DNS 配置记录,尤其是在您使用自定义 DNS 服务器时。如果出现问题,这将使故障排除更加容易。

避免日常冲洗

不要将清除 DNS 缓存作为日常计划的一部分。这会删除有效数据并减慢您的网页浏览速度。

仅在两种特定情况下刷新缓存:

  1. 您更改了 DNS 提供商(例如,从 ISP 切换到 Google DNS)。
  2. 网站已移至新服务器,您无法访问该网站。

结论

Linux 系统中名称解析错误的临时失败通常是由于互联网连接问题、DNS 配置问题、防火墙限制或 DNS 缓存损坏造成的。通过系统地使用本指南中的解决方案,您可以识别并修复影响系统的特定原因。

Ubuntu 22.04 和 24.04 用户必须优先考虑 systemd 解析 配置。由于此服务管理所有 DNS 查询,因此单个错误配置会阻止包更新和外部连接。验证服务是否处于活动状态并且链接正确。稳定的 DNS 设置可以让您的 Linux VPS 不间断地执行网络任务。

常问问题

为什么我在 Ubuntu 中看到名称解析临时失败错误?

当您的 Linux 系统无法将域名转换为 IP 地址时,就会出现此错误。常见原因包括互联网连接问题、DNS 设置配置错误、防火墙限制阻止 DNS 端口或 systemd 解析的服务出现问题。

如何解决名称解析中 ping 临时失败的问题?

首先,通过直接 ping IP 地址来验证您的互联网连接。然后检查您的 /etc/resolv.conf 文件包含有效的名称服务器,确保您的防火墙允许端口 53 上的流量,然后重新启动 systemd 解析的服务。如果问题仍然存在,请刷新您的 DNS 缓存。

如何检查 Linux 中的 DNS 设置?

通过使用 cat /etc/resolv.conf 检查 /etc/resolv.conf 文件来查看当前的 DNS 配置。对于使用 systemd-resolved 的系统,请使用resolvectl status 查看每个网络接口的详细 DNS 配置。

Linux 应该使用什么 DNS 服务器?

流行、可靠的 DNS 服务器包括 Google DNS(8.8.8.8 和 8.8.4.4)和 Cloudflare DNS(1.1.1.1 和 1.0.0.1)。两者都提供快速的解决时间和高可用性。您还可以使用 ISP 的 DNS 服务器或其他公共 DNS 服务。

此错误对 Ubuntu 22.04 和 24.04 的影响是否不同?

两个版本都会遇到此错误,但 Ubuntu 22.04 用户在从 20.04 升级后经常报告由于 systemd 解决的配置更改而出现的问题。 Ubuntu 24.04 提高了稳定性,但可能需要为某些应用程序配置存根侦听器。

分享

更多来自博客

继续阅读。

MikroTik L2TP VPN 指南的 Cloudzy 标题图片,显示一台笔记本电脑通过带有盾牌图标的发光的蓝色和金色数字隧道连接到服务器机架。
安全与网络

MikroTik L2TP VPN 设置(使用 IPsec):RouterOS 指南 (2026)

在此 MikroTik L2TP VPN 设置中,L2TP 处理隧道,而 IPsec 处理加密和完整性;将它们配对即可为您提供本机客户端兼容性,无需第三方年龄

雷克萨·赛勒斯雷克萨·赛勒斯 阅读时间 9 分钟
终端窗口显示有关远程主机标识更改的 SSH 警告消息,并在深青色背景上显示“修复指南”标题和 Cloudzy 品牌。
安全与网络

警告:远程主机标识已更改以及如何修复它

SSH 是一种安全网络协议,可在系统之间创建加密隧道。它仍然受到需要远程访问计算机而无需图形界面的开发人员的欢迎。

雷克萨·赛勒斯雷克萨·赛勒斯 10 分钟阅读
如何将域指向 VPS:快速指南
安全与网络

如何将域指向 VPS:快速指南

将域指向虚拟专用服务器对于托管网站和应用程序是必要的。本指南涵盖了有关将您的域连接到您的域所需了解的所有信息

雷克萨·赛勒斯雷克萨·赛勒斯 阅读时间 16 分钟

准备好部署了吗? 每月 2.48 美元起。

独立云,自 2008 年起。AMD EPYC、NVMe、40 Gbps。 14 天退款。