EC2实例没有公共DNS

时间:2014-01-06 01:47:34

标签: amazon-web-services amazon-ec2 amazon-vpc

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

19 个答案:

答案 0 :(得分:537)

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

  • 转到console.aws.amazon.com
  • 转到服务 - > VPC
  • 打开您的VPC
  • 选择您的VPC 连接到您的EC2和
  • 选择操作=>编辑DNS主机名 的 --->将DNS主机名更改为:是

希望这有帮助!

干杯

答案 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)

  1. Go to AWS Console.
  2. Go to Services and select VPC
  3. Click on vpc.
  4. select the instance and click on Action.
  5. Select Edit DNS Host name click on yes.

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

Assign Public IP

答案 5 :(得分:20)

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

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

答案 6 :(得分:20)

这是解决无法解决问题的提示:

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

假设您已经完成了此操作并且仍然没有获得公共IP,那么请在VPC管理屏幕中转到相关子网,您可能会发现"自动分配公共IP"未设置为是。然后修改该设置,我知道你不想在这里,在该子网中创建一个新实例。据我所知,你不能在主机上修改它,我试过试过,只是终止它。

答案 7 :(得分:8)

只需启动另一个实例(如果没有用,也删除有问题的实例),并确保这次检查"自动为您的实例分配公共IP地址"。如果不是那么slayedbylucifer建议;为实例分配弹性IP(EIP),然后使用该IP登录。但要小心,如果您正在运行免费的AWS层,EIP将花费您的钱 - 这是一个完整的主题..

答案 8 :(得分:5)

首先,可能有两个原因:

  1. 您已创建自己的VPC,但忘记启用公共DNS。
  2. 解决这个问题:

    i)转到AWS VPC控制台并选择您创建的VPC。

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

                OR
    
    1. 您尚未在EC2配置中启用public ip-assign选项。
    2. 您无法在此更改设置;所以创建一个ami图像,然后从中重新创建实例。

答案 9 :(得分:4)

它与VPC的“ DNS主机名”功能有关。您可以启用或禁用它。转到VPC,在“操作”菜单下,选择“编辑DNS主机名”项,然后选择“是”。之后,应显示EC2实例的公共DNS。

答案 10 :(得分:3)

  1. 转到专有网络
  2. 选择您的 VPC
  3. 点击操作并选择编辑 DNS 主机名
  4. 勾选启用 DNS 主机名
  5. 点击保存更改

答案 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)

答案 18 :(得分:0)

在这里,我将总结最常见的问题:

创建自定义VPC时,如果希望aws资源(例如ec2实例)获取公共IP地址,以便Internet可以与它们进行通信,那么您首先必须确保ec2实例与服务器的公共子网关联。自定义VPC。这意味着子网具有与之关联的Internet网关。此外,您还需要确保与ec2实例关联的VPC的安全组具有规则,以允许入站流量进入所需端口,例如ssh,http和https。但是,这里仍然存在一些常见的疏忽:

1)您必须确保为VPC启用了DNS主机名

2)您必须确保链接到EC2实例的公共子网的“自动分配公共IP”标志已启用

3)如果已经创建了实例,则可能需要终止它并为要填充的公共IP和公共DNS字段创建一个新实例。