sudo:无法解析主机 {hostname}:名称解析暂时失败

sudo:无法解析主机 {hostname}:名称解析暂时失败

最近,我尝试运行命令 sudo apt-get update,并收到名称解析暂时失败错误。但是,之后命令继续执行并继续更新。我应该担心这个错误吗?以下是完整日志:

sudo apt-get update
sudo: unable to resolve host {hostname}: Temporary failure in name resolution
Hit:1 http://in.archive.ubuntu.com/ubuntu focal InRelease                                                                                                                                                 
Get:2 http://in.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]                                                                                                                                
Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]                                                                                                                                 
Fetched 6,581 kB in 6s (1,180 kB/s)                                       
Reading package lists... Done
 

答案1

您的计算机的主机名可能配置不正确。您应该检查两个文件;/etc/hostname仅包含您的计算机名称,并且/etc/hosts将有一行将 IP 地址映射127.0.1.1到您的主机名。例如,这些文件可能如下所示:

username@ubuntu ~ $ cat /etc/hostname
ubuntu

username@ubuntu ~ $ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

如果您没有这些,请尝试添加它们 - 请记住主机名只能由字母、数字和连字符组成 - 然后重新启动并查看是否再次出现该错误。

答案2

我遇到了类似的问题。我尝试使用 sudo certbot renew 来更新 SSL 证书,但一直收到错误:名称解析暂时失败。颁发证书时出现“意外错误”等等。该错误意味着缺少、配置错误或未激活 resolve.conf 文件。

修复很简单,您需要重新启动:

$ sudo systemctl restart systemd-resolved.service

   

然后使用以下命令检查文件的状态:

$ sudo systemctl status systemd-resolved.service

然后运行更新 SSL 命令

sudo certbot renew

这解决了我的问题

答案3

我修复了它:

hostnamectl set-hostname hostname.newdomain.local

答案4

当我将主机名配置为包含下划线字符 (_) 时,我遇到了此错误。这是一个无效的主机名,因此在 hosts 文件中永远无法解析它。以下是有关创建有效主机名的一些信息:

主机名最多可包含 255 个字符(包括点)。主机名中的文本字符串必须由 ASCII 字符组成。它包括大写或小写字母(A 到 Z 或 a 到 z)、数字(0 到 9)、点符号 (.) 和连字符符号 (-)。

相关内容