public 子网中的 EC2 实例没有 public IP
EC2 instance in public subnet has no public IP
我创建了一个 VPC,并在其中创建了一个 子网 和一个 Internet 网关 (附加到 VPC)。在该子网中,我创建了一个路由 Table,我在其中设置了路由 0.0.0.0/0 以指向 Internet 网关。
之后,我在我的子网中启动了一个 EC2 实例,但它没有 public IP,所以我无法使用 RDP 连接到它。
我尝试启用“DNS 主机名”和“DNS 解析”,但它没有添加 public IP 到我的实例(即使在重新启动它之后)。在我的子网中,我启用了“自动分配 IPv4”,但仍然没有 public IP。
请问我遗漏了什么吗?
在您的子网中启用 'Auto-assign IPv4' 后,您的实例不会自动获得附加到其 ENI 的 public IP。在不启动新 EC2 的情况下,一种可能的解决方案是将弹性 IP(如@Oleksii Donoha 在评论中建议的那样)附加到此实例。您可以按照 aws 文档到 allocate an Elastic IP address and then associate it with your running instance.
旁注:无法将临时 ip 附加到已创建的 ENI 或 EC2 实例。请参阅讨论 here。
虽然您的实例位于 public 子网中,但您必须确保 'Auto-assign Public IP' 设置为 'Enable' 或“使用子网设置(启用)”配置实例详细信息页。有时人们在创建 EC2 实例时忘记 check/reverify 此设置。
我创建了一个 VPC,并在其中创建了一个 子网 和一个 Internet 网关 (附加到 VPC)。在该子网中,我创建了一个路由 Table,我在其中设置了路由 0.0.0.0/0 以指向 Internet 网关。
之后,我在我的子网中启动了一个 EC2 实例,但它没有 public IP,所以我无法使用 RDP 连接到它。
我尝试启用“DNS 主机名”和“DNS 解析”,但它没有添加 public IP 到我的实例(即使在重新启动它之后)。在我的子网中,我启用了“自动分配 IPv4”,但仍然没有 public IP。
请问我遗漏了什么吗?
在您的子网中启用 'Auto-assign IPv4' 后,您的实例不会自动获得附加到其 ENI 的 public IP。在不启动新 EC2 的情况下,一种可能的解决方案是将弹性 IP(如@Oleksii Donoha 在评论中建议的那样)附加到此实例。您可以按照 aws 文档到 allocate an Elastic IP address and then associate it with your running instance.
旁注:无法将临时 ip 附加到已创建的 ENI 或 EC2 实例。请参阅讨论 here。
虽然您的实例位于 public 子网中,但您必须确保 'Auto-assign Public IP' 设置为 'Enable' 或“使用子网设置(启用)”配置实例详细信息页。有时人们在创建 EC2 实例时忘记 check/reverify 此设置。