2014-11-03 159 views
10

EC2 t2.micro实例没有公共DNSEC2 t2.micro实例没有公共DNS

我lanunched一个Amazon Web服务(AWS)EC2实例,t2.micro,必须launced到VPC。 VPC具有自动分配公用IP设置为是。 DNS解析:是 DNS主机名:是 但在EC2仪表板上,该实例仍具有空白的公共DNS和公用IP。我曾尝试多次重新启动实例,但仍未分配公用IP。我们的AWS账户附带的5个弹性IP已被使用。有可能在不使用Elastic IP的情况下获得分配给t2.micro实例的公有IP?

我已阅读帖子:EC2 instance has no public DNS, 但我没有信誉积分可以添加评论,所以我将此发布为新问题。

+0

我能够在不使用VPC的情况下启动另一个实例t1.micro,并且在获取公共IP时没有问题。所以我不知道为什么VPC - 自动分配公共IP不起作用,但我不会为此而失眠。 – J21042 2014-11-03 19:50:01

回答

16

根据您提供的信息,我不能100%确定我的答案是正确的,但这里有一个想法。

您的EC2实例没有公共IP地址的最常见原因是您在专用子网中启动您的EC2实例。私有子网意味着位于该子网中的任何EC2实例都不能直接从公共Internet访问。换言之,根据定义,私有子网中的EC2实例不能具有公共IP地址。

这可以解释为什么检查“公共IP地址”不起作用,以及为什么您无法分配弹性IP地址。

您不能将实例从一个子网重新定位到另一个子网。如果需要这样做,可以创建实例的AMI(右键单击EC2实例并单击create image),然后从不同子网中的AMI启动一个新实例。

要确定您的子网是私有的,看路由表,看看你是否有一个互联网网关路线。转至VPC>子网>选择一个子网>路由表选项卡。寻找有类似igw-***的条目。如果你看到这个,它是一个公共子网。如果你看到类似eni-***/i-***这是一个私人子网。

+1

我不能100%确定发生了什么,因为我已经删除了使用的VPC和路由表,但它是我听说过的最好的解释。之后,我创建了一个新的t2.micro实例,使用新的VPC,并且“Auto Assign Public IP”= yes,并且公有IP与预期一致。谢谢Josh Padnick。 – J21042 2014-11-06 16:24:40

19

右键单击VPC管理控制台页面中的VPC行,然后选择“编辑DNS主机名”。将其设置为“是”。有必要让所有的实例具有相同的VPC。

在“步骤3:配置实例详细信息”中创建新实例时,需要启用“自动分配公共IP”。

就是这样! :-)

+0

确实如此。必须重新发现它。来这里写答案。看你已经回答了。投票。评论这段文字。 EOF。 – 2015-12-15 15:50:19

+0

这为我修复了它。感谢这个答案。 – 2016-06-14 00:31:51

1

同时检查: VPC - >子网 - >子网操作 - >修改自动分配公网IP

1

今天面临同样的问题。我的EC2实例没有公共DNS,因此我无法通过ssh连接。

我尝试和成功执行这些步骤:

  • 转到VPC>互联网网关:确保Internet网关创建并连接到EC2的VPC

  • 转到VPC>路由表,选择一个VPC路线,导航到路由标签:添加新的规则与

++目的地:0.0.0.0/0

++目标:选择创建的互联网网关

  • 转到VPC>子网>路由表选项卡:点击编辑,改变到路由表中与目的地0.0.0.0/0上述

完成。

1

我有同样的问题。我的问题原因原来是我使用的路由表与子网无关。

enter image description here

后,我改变了我的子网,我的情况下,被分配的公网IP。

相关问题