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


当前回答

DNS主机名设置的更改也可以使用AWS CLI完成:

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

(其中$vpc_id为实例所绑定的VPC ID。)

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

其他回答

DNS主机名设置的更改也可以使用AWS CLI完成:

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

(其中$vpc_id为实例所绑定的VPC ID。)

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

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

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

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

听起来像是在VPC中启动了实例,但没有选中“自动为实例分配公共IP地址”的复选框。因此实例没有公共IP

您可以为该实例分配一个弹性IP,然后使用该IP登录。

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

When you create a custom VPC, if you want aws resources such as ec2 instances to acquire public IP addresses so that the internet can communicate with them, then you first must ensure that the ec2 instance is associated with a public subnet of the custom VPC. This means that subnet has an internet gateway associated with it. Also, you need to ensure that the security group of the VPC associated with ec2 instance has rules allowing inbound traffic to the desired ports, such as ssh, http and https. BUT here are some common oversights that still occur:

1)确保VPC已启用DNS主机名

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

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

只需启动另一个实例(如果它没有用处,也可以删除有问题的实例),并确保这次选中了“自动为您的实例分配公共IP地址”。如果不像路西法说的那样;为实例分配一个弹性IP (EIP),然后使用该IP登录。但是要小心,如果你运行的是免费的AWS层,一个EIP会让你花钱——这是另一个话题了。