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


当前回答

如果实例在VPC内,请确保“DNS解析”和“DNS主机名”均为“yes”。您可以在Aws控制台UI中完成此操作。HTH !

其他回答

您不必为实例分配公共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

这是解决这个问题的技巧,它不起作用:

提示—如果您的实例没有公共DNS名称,请在VPC控制台,选择VPC,在“概要”页签。如果“DNS解析”或“DNS主机名”中有一个为“否”,单击“编辑”,修改为“是”。

假设你已经这样做了,你仍然没有得到一个公共IP,然后在VPC管理屏幕转到有问题的子网,你可能会发现“自动分配公共IP”没有设置为yes。修改这个设置,我知道你不想在子网中创建一个新实例。据我所知,你不能在主机上修改这个,我试了又试,只是终止它。

实际上,在VPC中有一个叫做“DNS主机名”的设置。可修改EC2实例所在的VPC,将该选项修改为“是”。这样应该可以了。

我昨天遇到了这个问题,尝试了曼尼的上述答案,但没有奏效。不过,VPC的设置对我很有用。

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

进入VPC 选择VPC 单击“操作”,选择“编辑DNS主机名” “DNS主机名”勾选“启用” 单击保存更改

对于那些正在使用Terraform的人。

如果需要启用DNS主机名,请在VPC中使用如下一行:

resource "aws_vpc" "app_vpc" 
{
   enable_dns_hostnames = true # Add this line

   cidr_block = var.vpc_cidr
   tags = { Name = "mostafa_vpc" }
}