一个和我一起工作的人给了我登录到他的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主机名。你可以像这样轻松地启用它:

进入控制台中您的实例,然后单击您的VPC ID。 在VPC中,勾选“编辑DNS主机名” 将其设置为启用并保存更改。 现在,在您的EC2实例窗口中,您可以找到DNS:

您不必为实例分配公共ip地址。 可以使用NAT实例,也可以使用NAT网关。

https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-comparison.html

进入AWS控制台。 进入“服务”页面,选择“VPC” 单击“vpc”。 选择实例并单击Action。 选择“编辑DNS主机名”,单击“是”。

最后你会得到你的公共dns。

对我来说,问题是子网设置。

打开https://console.aws.amazon.com/vpc 在左侧菜单中进入子网 选择子网 将自动分配IP设置修改为启用

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