我工作的人给了我EC2凭据登录他的EC2控制台。我不是那个设置它的人。一些实例显示公共DNS名称,而其他实例显示空白公共DNS。我希望能够连接到具有空白公共DNS的实例。我无法弄清楚为什么这些显示为空白。
答案 0 :(得分:537)
我有同样的问题解决了它。看一下分步说明:
希望这有帮助!
干杯
答案 1 :(得分:50)
VPC中实际存在一个名为“DNS主机名”的设置。您可以修改EC2实例所在的VPC,并将其更改为“是”。这应该可以解决问题。
昨天我遇到了这个问题,并尝试了Manny的上述答案,但没有奏效。但是,VPC设置确实对我有效。
最终我添加了一个EIP,我用它来连接。
答案 2 :(得分:36)
听起来这个实例是在VPC中启动的,但是这样做时,Automatically assign a public IP address to your instances
的复选框没有被选中。因此,实例没有公共IP
您可以为此实例分配弹性IP,然后使用该IP登录。
答案 3 :(得分:22)
At the end you will get your Public dns.
答案 4 :(得分:22)
就我而言,我发现slayedbylucifer的答案和其他指出相同的答案都是有效的
即使设置为 #twitter-widget-0::shadow div.Tweet-brand {
display: none;
}
,也不会在 my-pvc (仅限Privat IP)上分配公共IP。
肯定必须设置自动分配公共IP {。{1}} 如果未选中,则默认设置为
DNS hostname: yes
答案 5 :(得分:20)
对我来说问题出在子网设置中。
答案 6 :(得分:20)
这是解决无法解决问题的提示:
提示 - 如果您的实例没有公共DNS名称,请打开VPC控制台,选择VPC,然后选中“摘要”选项卡。如果DNS解析或DNS主机名为no,请单击“编辑”并将值更改为“是”。
假设您已经完成了此操作并且仍然没有获得公共IP,那么请在VPC管理屏幕中转到相关子网,您可能会发现"自动分配公共IP"未设置为是。然后修改该设置,我知道你不想在这里,在该子网中创建一个新实例。据我所知,你不能在主机上修改它,我试过试过,只是终止它。
答案 7 :(得分:8)
只需启动另一个实例(如果没有用,也删除有问题的实例),并确保这次检查"自动为您的实例分配公共IP地址"。如果不是那么slayedbylucifer建议;为实例分配弹性IP(EIP),然后使用该IP登录。但要小心,如果您正在运行免费的AWS层,EIP将花费您的钱 - 这是一个完整的主题..
答案 8 :(得分:5)
首先,可能有两个原因:
解决这个问题:
i)转到AWS VPC控制台并选择您创建的VPC。
ii)然后单击“操作”,然后启用“DNS解析”。
OR
您无法在此更改设置;所以创建一个ami图像,然后从中重新创建实例。
答案 9 :(得分:4)
它与VPC的“ DNS主机名”功能有关。您可以启用或禁用它。转到VPC,在“操作”菜单下,选择“编辑DNS主机名”项,然后选择“是”。之后,应显示EC2实例的公共DNS。
答案 10 :(得分:3)
答案 11 :(得分:2)
对于使用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'
}]
}
}
答案 12 :(得分:1)
转到VPC控制台,选择您的VPC,然后单击“操作”菜单,选择“编辑DNS主机名” - 选择“是”。那应该解决它。
答案 13 :(得分:1)
还可以使用AWS CLI完成对DNS主机名设置的更改:
aws ec2 modify-vpc-attribute --vpc-id $vpc_id --enable-dns-hostnames '{"Value": true}'
(其中$ vpc_id是您的实例附加到的VPC的ID。)
只要更新了VPC,实例就会获得公共DNS。
答案 14 :(得分:1)
如果实例位于VPC中,请确保" DNS解析"和#34; DNS主机名"设置为"是"。您可以在Aws控制台UI中执行此操作。 HTH!
答案 15 :(得分:1)
在验证VPC和子网设置之后,我的EC2实例仍然没有公共DNS。经过一天的寻找解决方案,我终于找到答案了。
我必须创建一个新的弹性IP地址,然后将其关联到我的实例。
从EC2仪表板:
从侧边栏转到弹性IP 。
点击分配新地址,然后分配。
返回到EC2仪表板。转到网络接口。
选择没有公共DNS的EC2实例。然后操作-关联地址。
地址字段,选择新的弹性IP地址。
与私有IP地址关联字段,选择没有公共DNS的私有IP地址。
点击关联地址。
您的EC2实例现在应该具有公共DNS。
答案 16 :(得分:1)
我试图修复“没有公共DNS” EC2启动并运行后,我无法添加公共DNS
这甚至是在按照上述步骤为VPC或子网制作mods之后
因此,在启动另一个实例之前,我必须对子网和vpc进行修改,然后再启动一个新实例。
新实例具有公共DNS。那对我有用。
答案 17 :(得分:0)
您不必为实例分配公共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
答案 18 :(得分:0)
在这里,我将总结最常见的问题:
创建自定义VPC时,如果希望aws资源(例如ec2实例)获取公共IP地址,以便Internet可以与它们进行通信,那么您首先必须确保ec2实例与服务器的公共子网关联。自定义VPC。这意味着子网具有与之关联的Internet网关。此外,您还需要确保与ec2实例关联的VPC的安全组具有规则,以允许入站流量进入所需端口,例如ssh,http和https。但是,这里仍然存在一些常见的疏忽:
1)您必须确保为VPC启用了DNS主机名
2)您必须确保链接到EC2实例的公共子网的“自动分配公共IP”标志已启用
3)如果已经创建了实例,则可能需要终止它并为要填充的公共IP和公共DNS字段创建一个新实例。