公有子网中的 EC2 实例没有公有 IP

Mit*_*t94 15 amazon-ec2 amazon-web-services amazon-vpc

我创建了一个VPC,并在其中创建了一个子网和一个Internet 网关(附加到 VPC)。在该子网中,我创建了一个路由表,其中将路由 0.0.0.0/0 设置为目标Internet Gateway

之后,我在子网中启动了一个 EC2 实例,但它没有公共 IP,因此我无法使用 RDP 连接到它。

我尝试启用“ DNS 主机名”和“ DNS 解析”,但它没有向我的实例添加公共 IP(即使在重新启动后)。在我的子网中,我启用了“自动分配 IPv4 ”,但仍然没有公共 IP。

请问我在这里缺少什么线索吗?

jel*_*csc 10

在子网中启用“自动分配 IPv4”后,您的实例不会自动将公共 IP 附加到其 ENI。一种无需启动新 EC2 的可能解决方案是将弹性 IP(如 @Oleksii Donoha 在评论中建议的那样)附加到此实例。您可以按照 aws 文档分配弹性 IP 地址,然后将其与正在运行的实例关联

附注:无法将临时IP 附加到已创建的 ENI 或 EC2 实例。请参阅此处的讨论。

  • @Mit94 自动分配 IPv4 是一个子网级别默认设置,假设您随后不覆盖它,它会在实例启动时*复制到*实例的 ENI 属性。它是复制,而不是继承,这就是为什么这种行为看起来令人困惑。 (4认同)
  • @Mit94重新启动实例将不起作用,因为公共IP实际上是由底层ENI确定的,并且重新启动实例不会改变它。只需将 ENI 视为虚拟网卡即可。根本问题是 AWS 不允许您在创建后将临时 IP 添加到主 ENI。 (2认同)