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 instances
checkbox没有被选中。 因此该实例没有公共IP
您可以将Elastic IP分配给此实例,然后使用该IPlogin。
- 转到AWS控制台。
- 转到服务并selectVPC
- 点击vpc。
- select实例并点击Action。
- 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地址”。 如果不是的话,就像slayedbylucifer所说的那样。 将Elastic IP(EIP)分配给实例,然后使用该IPlogin。 但要小心,如果你运行的是免费的AWS层,EIP将会花费你的钱 – 这是一个完整的“主题..
首先,这可能有两个原因:
- 您已经创build了自己的VPC,并忘记启用公共DNS。
要解决这个问题:
i)转到AWS VPC控制台并select您创build的VPC。
ii)然后点击操作,然后启用DNSparsing。
OR
- 您尚未在EC2configuration中启用公共IP分配选项。
在这里你不能改变设置; 所以创build一个ami镜像,然后从中重新创build实例。
对我来说问题是在子网设置。
- 打开https://console.aws.amazon.com/vpc
- 转到左侧菜单中的子网
- select你的子网
- 修改自动分配IP设置以启用
转到VPC控制台,select您的VPC,然后单击操作菜单,select编辑DNS主机名 – select是。 这应该解决它。
如果实例处于VPC中,请确保“DNSparsing”和“DNS主机名”均设置为“是”。 您可以在Aws控制台UI中执行此操作。 HTH!
对于那些使用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主机名设置的更改也可以使用AWS CLI完成:
aws ec2 modify-vpc-attribute --vpc-id $vpc_id --enable-dns-hostnames '{"Value": true}'
(其中$ vpc_id是您的实例所连接到的VPC的ID。)
一旦VPC更新,实例将获得公共DNS。