EC2 t2.micro实例没有公共DNS
我已经启动了一个亚马逊网络服务(AWS)EC2实例t2.micro,该实例必须在VPC中启用。 VPC已将“自动分配公共IP”设置为“是”。 DNS解析:是的 DNS主机名:是的 但是在EC2仪表板上,该实例仍然具有空白的公共DNS和公共IP。我曾尝试多次重启实例,但仍未分配公共IP。我们的AWS账户附带的5个弹性IP已被使用。是否可以在不使用弹性IP的情况下将公共IP分配给t2.micro实例?
我已阅读帖子:EC2 instance has no public DNS, 但我没有声望点可以添加评论,所以我发布这个作为新问题。
答案 0 :(得分:31)
右键单击VPC管理控制台页面中的VPC行,然后选择“编辑DNS主机名”。将其设置为“是”。必须允许所有具有相同VPC的实例。
在“步骤3:配置实例详细信息”中创建新实例时,需要启用“自动分配公共IP”。
就是这样! :-)
答案 1 :(得分:26)
根据您提供的信息,我无法100%确定我的回答是正确的,但这是一个想法。
EC2实例没有公共IP地址的最常见原因是您在私有子网中启动了EC2实例。私有子网意味着位于该子网中的任何EC2实例都无法直接从公共Internet进行寻址。换句话说,根据定义,私有子网中的EC2实例不能具有公共IP地址。
这可以解释为什么检查“公共IP地址”没有效果,以及为什么您无法分配弹性IP地址。
您不能只是将实例从一个子网重定位到另一个子网。如果需要,可以创建实例的AMI(右键单击EC2实例并单击create image
),然后从另一个子网中的AMI启动新实例。
要确定您的子网是否为私有,请查看路由表,看看您是否有 Internet Gateway 路由。转到 VPC > 子网>选择一个子网> 路线表标签。查找类似igw-***
的条目。如果你看到这个,它就是一个公共子网。如果您看到类似eni-*** / i-***
的内容,则它是私有子网。
答案 2 :(得分:8)
今天面对同样的问题。我的EC2实例没有公共DNS,因此我无法通过ssh连接。
我尝试了以下步骤并取得了成功:
转到VPC> Internet网关:确保创建Internet网关并将其连接到EC2的VPC
转到VPC>路由表,选择VPC路由,导航到路由选项卡:使用
++目的地:0.0.0.0/0
++目标:选择创建的Internet网关
完成。
答案 3 :(得分:6)
同时检查: VPC - >子网 - >子网操作 - >修改自动分配公共IP
答案 4 :(得分:2)
答案 5 :(得分:2)
嗯。这么多回应。所有这些都按照“您做错了事”的顺序进行。
Newsflash:AWS并非总是能正常工作。我已经使用AWS很长时间了。我亲眼目睹了实例没有启动,实例没有停止,已部署实例上的磁盘损坏以及正在运行的实例上的网络故障。
我从未见过没有创建公共IP的情况。直到今天早上。现在,我可以将其添加到列表中。
作记录-这是我验证过的内容:)
三个实例中的两个实例获得公共IP。第三个没有。
因此,对于将来的任何其他人,请转至这篇文章:不,您不是疯子。是的,AWS可能会搞砸。
在我们的案例中,手动终止问题实例并发布新的群集...“修复”了问题。
而且-我赞成答案,该答案表明STOPPED实例的“类似启动”对公共IP产生了影响。不是因为它是正确的答案(不是),而是因为它对其他无法解释的情况表现出了令人钦佩的响应:反复试验/实验。好老的“ Gee,如果我尝试 this ...会发生什么?”。作为云专家:如果所有其他标准故障排除步骤均失败,并且唯一的替代方法是销毁实例(或子网,Lambda函数,DynamoDb或SNS队列;无论发生故障的资源如何),那么明智的做法是:尝试其他操作。
换句话说:保持开放的态度。
答案 6 :(得分:1)
有很多可能的原因。检查以下内容。
您需要创建一个VPC。
应启用DNS解析和DNS主机名。
选择您的VPC->操作->编辑DNS解析->启用 选择您的VPC->操作->编辑DNS主机名->启用
进入VPC也许您需要一个专用和公用子网。
在专用子网中,您需要与此相关联的NAT网关。 在公共子网中,您需要与此关联的Internet网关。
您需要为您的公共子网启用自动分配IP。 选择公共子网->操作->修改自动分配IP设置->启用
稍后在中启动新实例时 步骤3:配置实例详细信息。
您应该选择VPC和公共子网。然后在“自动分配公共IP”部分中选择“使用子网设置(启用)”
我认为那应该可以解决您的问题...
答案 7 :(得分:0)
创建子网后-确保自动分配公共IPv4设置设置为是或启用。 确保上述设置已打开后-然后启动EC2实例。 如果在创建子网后未启用上述设置,则EC2实例将被视为“私有”,并且将没有公共IPV4地址。
答案 8 :(得分:0)
转到VPC->子网 并确保将自动分配的公共IPv4地址设置为YES
答案 9 :(得分:0)
我的主要“陷阱”是从CloudFormation堆栈创建VPC和子网时,我的子网缺少属性“ MapPublicIpOnLaunch”:true。
答案 10 :(得分:0)
我的观察:
您需要为公共子网启用自动分配IP。选择公共子网->操作->修改自动分配IP设置->启用
仅在完成上述操作后,然后启动EC2实例,您将开始看到分配的公共IP。 在未启用上述设置的情况下创建的EC2实例启用后,即使重新启动后该EC2也不会分配公用IP,它已经认为该子网是私有的。 希望这会有所帮助!
答案 11 :(得分:0)
很可能,公共子网没有启用“自动分配 IPv4”功能。它被选择为“否”。在您的实例创建过程中,默认选项是“使用子网设置(已启用)”。这就是为什么新发布的实例无法获取公网IP地址。
转到 VPC 仪表板并单击子网。选择一个公共子网,然后从操作列表中选择修改自动分配 IP 设置,然后选中自动分配 IPv4。保存更改后,您的实例将自动获取公共 IP。
答案 12 :(得分:-2)
当我从STOPPED实例中使用“像这样启动更多”选项时,将得到一个没有公共ip的新实例。但是,如果我从正在运行的实例中“像这样启动”,则新实例具有公共ip。