AWS错误 - sudo:无法解析主机ip-10-0-xx-xx

时间:2015-10-30 17:40:14

标签: amazon-web-services sudo

我发布了一个新的aws实例。根据亚马逊游戏机,我的私人IP是ip-10-0-xx-xx。每当我执行sudo命令时,都会出现以下错误

sudo: unable to resolve host ip-10-0-xx-xx

如何纠正此错误?

10 个答案:

答案 0 :(得分:76)

此问题是由于未在您的VPC配置中启用enableDnsHostnames而引起的。

  

<强> enableDnsHostnames

     

指示在VPC中启动的实例是否获取DNS主机名。如果此属性为true,则VPC中的实例将获取DNS主机名;否则,他们没有。如果您希望实例获取DNS主机名,则还必须将enableDnsSupport属性设置为true。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html#vpc-dns-updating

答案 1 :(得分:39)

它似乎无法解析主机,因此您可以通过将此行添加到/ etc / hosts

来帮助它
10.0.xx.xx ip-10-0-xx-xx

使用enableDnsHostnames的以下答案是通过

更好的解决方案

答案 2 :(得分:9)

这对我有用:

将以下行添加到/etc/hosts

127.0.0.1 ip-xxx-xx-x-xx

ip是您的私人IP地址

答案 3 :(得分:5)

迈克尔评论中描述的

enableDnsHostnames是一个先决条件。另一个是你的VPC DHCP option set configured correctly。您遇到的问题是由search中遗失的/etc/resolv.conf行引起的;如果您正确设置了domain-name的DHCP选项,它将在DHCP分配时放入。阅读链接的AWS文档。

答案 4 :(得分:5)

可以从命令行轻松修补,如下所示:

sudo sed -i /etc/hosts -e "s/^127.0.0.1 localhost$/127.0.0.1 localhost $(hostname)/"

并检查重启或停止,然后启动aws实例将保留它。 如果它丢失,可以轻松地在启动时重新应用,并且可以添加到新vms的任何规定中。

实施例

在:

ubuntu@ip-177-11-22-333:~$ sudo id
sudo: unable to resolve host ip-177-11-22-333
uid=0(root) gid=0(root) groups=0(root)

修正:

ubuntu@ip-177-11-22-333:~$ sudo sed -i /etc/hosts -e "s/^127.0.0.1 localhost$/127.0.0.1 localhost $(hostname)/"
sudo: unable to resolve host ip-177-11-22-333

后:

ubuntu@ip-177-11-22-333:~$ sudo id
uid=0(root) gid=0(root) groups=0(root)
ubuntu@ip-177-11-22-333:~$

答案 5 :(得分:4)

两个选项:

  1. 启用VPC的DNS主机名,以便在VPC中启动的所有实例都将解析主机

  2. 编辑/ etc / hosts并添加以下行

    127.0.0.1 localhost    
    123.0.0.1 ip-10-0-1-18 ## (Replace with the private ip)
    
  3. 对于将在您的VPC中启动的每个实例,您需要执行此操作。

答案 6 :(得分:1)

我的问题是由无效的DHCP选项集(在VPC控制台中)引起的。您通常需要的默认值如下所示:

domain-name = ec2.internal
domain-name-servers = AmazonProvidedDNS

不知何故,我的domain-name已更改为us-east-1.compute.internal,每次运行sudo: unable to resolve host ip-10-0-xx-xx时都会发出sudo警告。改回上面的DHCP选项修复它。

答案 7 :(得分:1)

将以下行添加到 / etc / hosts

127.0.0.1 localhost
127.0.0.1 ip-xxx-xx-x-xx

该IP地址是您的私人IP地址

也请不要忘记在编辑这些实例后重新启动实例

答案 8 :(得分:0)

要启用DnsSupport属性,只需在终端中使用此命令

aws ec2 describe-vpc-attribute --vpc-id vpc-****** --attribute enableDnsSupport

确保将*替换为您的VPC ID 了解更多信息 https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-attribute.html

答案 9 :(得分:0)

运行以下命令;

sudo su -

并以root身份工作。然后启动命令将起作用。