EC2实例没有公有DNS

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

我有同样的问题解决了它。 看一下分步说明:

  • 去console.aws.amazon.com
  • 转到服务 – > VPC
  • 打开您的VPC
  • select你的VPC连接到你的EC2和
  • selectActions => Edit DNS Hostnames —> Change DNS hostnames:YES

希望这可以帮助!

干杯

VPC中实际上有一个名为“DNS Hostnames”的设置。 您可以修改EC2实例所在的VPC,并将其更改为“是”。 这应该够了吧。

我昨天遇到了这个问题,并试图从曼尼的上述答案,这没有奏效。 VPC的设置,但是, 确实为我工作。

最终我添加了一个EIP,我用它来连接。

听起来就像在VPC中启动的实例一样,在这样做的时候, Automatically assign a public IP address to your instancescheckbox没有被选中。 因此该实例没有公共IP

您可以将Elastic IP分配给此实例,然后使用该IPlogin。

  1. 转到AWS控制台。
  2. 转到服务并selectVPC
  3. 点击vpc。
  4. select实例并点击Action。
  5. select编辑DNS主机名称点击是。

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

这是提供解决不起作用的问题的提示:

提示 – 如果您的实例没有公共DNS名称,请打开VPC控制台,selectVPC,然后选中摘要选项卡。 如果DNSparsing或DNS主机名为“否”,请单击“编辑”并将其值更改为“是”。

假设你已经完成了这个工作,但你还没有获得一个公共IP地址,那么在VPCpipe理员屏幕上进入有问题的子网,你可能会发现“自动分配公共IP地址”没有设置为yes。 然后修改该设置,我知道你不想在这里,在该子网中创build一个新的实例。 据我可以告诉你不能在主机上修改这个,我尝试过,只是终止它。

在我的情况下,我find了来自slayedbylucifer的答案和其他指出相同的答案是有效的。
即使设置了DNS hostname: yes ,没有公共IP分配在my-pvc上 (只有Privat IP)。

自动分配公网IP必须设置为Enable
如果没有select,则默认设置为Use subnet setting (Disable)

分配公共IP

只需启动另一个实例(如果没有用,也删除相关的实例),并确保这次选中“自动为您的实例分配公有IP地址”。 如果不是的话,就像slayedbylucifer所说的那样。 将Elastic IP(EIP)分配给实例,然后使用该IPlogin。 但要小心,如果你运行的是免费的AWS层,EIP将会花费你的钱 – 这是一个完整的“主题..

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

  1. 您已经创build了自己的VPC,并忘记启用公共DNS。

要解决这个问题:

i)转到AWS VPC控制台并select您创build的VPC。

ii)然后点击操作,然后启用DNSparsing。

  OR 
  1. 您尚未在EC2configuration中启用公共IP分配选项。

在这里你不能改变设置; 所以创build一个ami镜像,然后从中重新创build实例。

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

  1. 打开https://console.aws.amazon.com/vpc
  2. 转到左侧菜单中的子网
  3. select你的子网
  4. 修改自动分配IP设置以启用

转到VPC控制台,select您的VPC,然后单击操作菜单,select编辑DNS主机名 – select是。 这应该解决它。

如果实例处于VPC中,请确保“DNSparsing”和“DNS主机名”均设置为“是”。 您可以在Aws控制台UI中执行此操作。 HTH!

对于那些使用CloudFormation的人来说,关键属性是EnableDnsSupportEnableDnsHostnames ,它们应该被设置为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主机名设置的更改也可以使用AWS CLI完成:

 aws ec2 modify-vpc-attribute --vpc-id $vpc_id --enable-dns-hostnames '{"Value": true}' 

(其中$ vpc_id是您的实例所连接到的VPC的ID。)

一旦VPC更新,实例将获得公共DNS。