一个和我一起工作的人给了我登录到他的EC2控制台的EC2凭证。不是我设的局。一些实例显示公共dns名称,而其他实例则显示空白的公共dns。我希望能够连接到具有空白公共DNS的实例。我一直无法弄清楚为什么这些显示为空白。


当前回答

在验证VPC和子网设置后,我的EC2实例仍然没有公共DNS。经过一天的寻找,我终于找到了解决办法。

我必须创建一个新的弹性IP地址,然后将其关联到我的实例。

从EC2仪表板:

从侧边栏转到弹性ip。

单击“分配新地址”,然后单击“分配”。

回到EC2仪表盘。进入“网络接口”。

选择没有公共DNS的EC2实例。然后操作-关联地址。

在“Address”字段中选择新创建的弹性IP地址。

“关联到私有IP地址”字段,选择没有公共DNS的私有IP地址。

单击关联地址。

您的EC2实例现在应该有一个公共DNS。

其他回答

这与VPC的“DNS主机名”特性有关。您可以启用或禁用它。进入VPC,在“操作”菜单中选择“编辑DNS主机名”,然后选择“是”。这样做之后,应该会显示EC2实例的公共DNS。

听起来像是在VPC中启动了实例,但没有选中“自动为实例分配公共IP地址”的复选框。因此实例没有公共IP

您可以为该实例分配一个弹性IP,然后使用该IP登录。

在我的情况下,我从《被路西法杀死》和其他指向同样的答案中找到了答案。 即使设置了DNS主机名:是的,my-pvc上没有分配公共IP(只有私有IP)。

“自动分配公共IP”必须设置为“启用”。 如果未选中,则默认设置为“使用子网设置(禁用)”

对于那些使用CloudFormation,关键属性是EnableDnsSupport和EnableDnsHostnames,应该设置为true

VPC: {
    Type: 'AWS::EC2::VPC',
    Properties: {
      CidrBlock: '10.0.0.0/16',
      EnableDnsSupport: true,
      EnableDnsHostnames: true,
      InstanceTenancy: 'default',
      Tags: [
        {
          Key: 'env',
          Value: 'dev'
        }]
    }
  }

只需启动另一个实例(如果它没有用处,也可以删除有问题的实例),并确保这次选中了“自动为您的实例分配公共IP地址”。如果不像路西法说的那样;为实例分配一个弹性IP (EIP),然后使用该IP登录。但是要小心,如果你运行的是免费的AWS层,一个EIP会让你花钱——这是另一个话题了。