在 ubuntu 网络服务器上使用 SUDO 运行命令时出现“无法解决主机错误”

在 ubuntu 网络服务器上使用 SUDO 运行命令时出现“无法解决主机错误”

我在 amazon 上有一台服务器,通常运行良好;在本周末增加实例大小后,然后将其减小回正常大小,每次在 下运行命令时,我都会收到奇怪的错误sudo。这是一个例子:

sudo ps -ef
sudo: unable to resolve host domU-##-##-##-##-##-##

其中 # 是数字。需要注意的是然后命令就会按预期执行。我认为我的 hosts 文件中可能存在一些奇怪的东西,所以我看了一下:

127.0.0.1 localhost

# 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
ff02::3 ip6-allhosts

虽然我不太清楚,但这似乎很正常。有人能解释一下这个重复的错误以及如何修复它吗?

答案1

确保您的主机名位于 /etc/hostname 中。要查看其中现在的内容,您可以运行 hostname -f 或 cat /etc/hostname。

当您移动 EC2 实例时,您会丢失主机名,因此它不再与您安装 Ubuntu 时的主机名匹配。

答案2

看来您没有使用正确的 Amazon DNS。

如果您的 EC2 实例位于 VPC 中172.31.0.0,则应使用的 DNS 是172.31.0.2。因此,您必须在最后一个数字上“加二”。

只有您的 VPC 的 DNS 才会响应您的本地主机名ip-XXX-XXX-XXX-XXX

来自文档:

字符串 AmazonProvidedDNS 映射到在 VPC 网络范围“加二”底部的保留 IP 地址上运行的 DNS 服务器。例如,10.0.0.0/16 网络上的 DNS 服务器位于 10.0.0.2。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html#AmazonDNS

答案3

当我将设置从一个可用区复制到另一个可用区时,我遇到了这个问题。我的 VPC 的 DHCP 选项集指向 us-west-1,但我的新 VPC 位于 us-west-2。因此,当机器启动时,设置机器的 EC2 脚本会将其放入我的 resolv.conf 文件中

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.2
search us-west-1.compute.internal

在创建一个新的 DHCP 选项集(domain=us-west-2.compute.internal)并将其应用于我的 VPC 后,一旦我重新启动 EC2 实例,resolve.conf 文件就会如下所示

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.2
search us-west-2.compute.internal

(请注意第二个块中的 us-west-2 与第一个块中的 us-west-1 相对),我不再收到“无法解析主机”错误。

相关内容