sudo:无法解析主机 ubuntu-server

Man*_*urg 18 sudo

每次我尝试使用时,sudo我都会得到这个:

sudo: unable to resolve host ubuntu-server
Run Code Online (Sandbox Code Playgroud)

我的/etc/hosts文件:

127.0.0.1       localhost
127.0.1.1       ubuntu-server

# 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
Run Code Online (Sandbox Code Playgroud)

/etc/hostname 已:

ubuntu-server
Run Code Online (Sandbox Code Playgroud)

我认为还有一些其他设置会导致unable to resole host错误,但我找不到这些设置。

bel*_*qua 5

这可能意味着您的 DNS 查找已损坏。

您的 /etc/hosts 文件看起来不错。你也希望它看起来像这样:

127.0.0.1       localhost
127.0.1.1       ubuntu-server
Run Code Online (Sandbox Code Playgroud)

但有几个合法的变体。

确保 /etc/hostname 中有匹配的主机名。

检查 /etc/resolv.conf 以查看您是否定义了工作名称服务器。

看看是否可以解析任何主机名。有效吗nslookup google.com?如果不是,则您的 DNS 查找失败,可能是由于配置或网络或防火墙问题(可能超出了您对服务器的控制范围)。

根据我的经验,sudo在域查找超时后,最终会要求您提供密码,并授予您提升的权限。

尝试手动将正确的 DNS 名称服务器添加到 /etc/resolv.conf。

在紧要关头,您可以使用公共服务器。使用 Google DNS 服务器时该文件如下所示:

/etc# cat resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
Run Code Online (Sandbox Code Playgroud)


小智 2

编辑一下/etc/hosts,你有一个拼写错误127.0.1.1不是环回,将其更改为127.0.0.1,保存并重新启动。

  • -1 这个答案不正确。https://bugs.launchpad.net/ubuntu/+source/rescue/+bug/19553/comments/9 对此进行了解释。当您不想或不能使用 127.0.0.1 时,127.0.1.1 是一个常见的占位符。它们最终都解析为本地环回接口(与 127.0.0.0/8 保留网络块中的任何内容一样)。 (8认同)