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

64

我启动了一个Amazon Web Service(AWS)EC2实例,t2.micro,必须启动到一个VPC中。

VPC的自动分配公共IP设置为“是”。

DNS解析:是

DNS主机名:是

但在EC2仪表板上,该实例仍然没有公共DNS和公共IP。我已经尝试多次重启该实例,但它仍未被分配公共IP。我们AWS账户中提供的5个弹性IP已经用完了。是否可能在不使用弹性IP的情况下为t2.micro实例分配公共IP?

我阅读了这篇文章:EC2 instance has no public DNS,但我没有足够的声望来添加评论,所以我将其作为新问题发布。


我能够启动另一个实例,t1.micro,而不使用VPC,并且在获取公共IP方面没有任何问题。所以我不知道为什么VPC - 自动分配公共IP没有起作用,但我并不为此失眠。 - J21042
15个回答

2
创建子网后,请确保将“自动分配公共IPv4”设置为“是”或“启用”。 确保打开上述设置后,再启动EC2实例。 如果在创建子网后未启用上述设置,则EC2实例将被视为私有实例,并且不会拥有公共IPV4地址。最初的回答。

1

我的观察:

您需要启用公共子网的自动分配IP功能。选择公共子网 -> 操作 -> 修改自动分配IP设置 -> 启用

只有在完成上述操作后,才能启动EC2实例并开始看到分配的公共IP。 如果创建了未启用上述设置的EC2实例,则即使重新启动,该EC2实例也不会分配公共IP,因为该子网已被视为私有子网。 希望这可以帮到您!


1
在使用CloudFormation堆栈创建VPC和子网时,我的一个重要问题是,我的子网缺少属性"MapPublicIpOnLaunch": true。

1

我将实例附加到了一个子网,该子网的 VPC 具有自动分配公共 IP 设置为 No。我将其更改为 Yes 并重新启动了实例。然而,这并没有解决问题。

我不得不终止该实例并创建一个新的实例,将其附加到上述子网(在实例创建之前已经设置为 Yes),以便实例获得公共 IP。


0

我的回答:

请检查您是否已将次要网络接口附加到实例上。根据AWS文档,如果您向实例附加另一个网络接口,则在重新启动实例时会释放当前的公共IP地址。请阅读以下第三点。

您无法手动将公共IP(IPv4)地址与实例关联或取消关联。相反,在某些情况下,我们会从实例中释放公共IP地址或为其分配新的公共IP地址:

  1. 当实例停止、休眠或终止时,我们会释放实例的公共IP地址。当您启动已停止或休眠的实例时,它会获得新的公共IP地址。

  2. 当您将弹性IP地址与实例关联时,我们会释放实例的公共IP地址。当您从实例中取消关联弹性IP地址时,它会获得新的公共IP地址。

  3. 如果VPC中实例的公共IP地址已被释放,并且有多个网络接口附加到实例上,则它将不会获得新的公共IP地址。

  4. 如果实例具有关联弹性IP地址的辅助私有IP地址,并且其公共IP地址已被释放,则该实例不会获得新的公共IP地址。

AWS文档链接以供更多参考:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html?icmpid=docs_ec2_console#concepts-public-addresses

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接