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


当前回答

对于那些使用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'
        }]
    }
  }

其他回答

首先,这可能有两个原因:

已创建VPC,但忘记开启“公共DNS”。

要解决这个问题:

i)进入“AWS VPC控制台”,选择已创建的VPC。

ii)然后单击“操作”,然后启用DNS解析。

            OR

您没有在EC2配置中启用公共ip-assign选项。

这里你不能改变设置;因此,创建一个ami映像,然后从中重新创建实例。

对于那些使用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'
        }]
    }
  }

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

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

我试图修复“没有公共DNS” 一旦EC2启动并运行,我就无法添加公共DNS

这甚至是在按照上述步骤制作VPC或子网的mod之后

所以,在启动另一个实例之前,我必须对子网和vpc进行修改,然后再启动一个新实例。

新实例有一个公共DNS。这就是我的工作方式。

进入VPC控制台,选择您的VPC,单击“操作”菜单,选择“编辑DNS主机名”—选择“是”。这应该能解决问题。