一个和我一起工作的人给了我登录到他的EC2控制台的EC2凭证。不是我设的局。一些实例显示公共dns名称,而其他实例则显示空白的公共dns。我希望能够连接到具有空白公共DNS的实例。我一直无法弄清楚为什么这些显示为空白。
当前回答
您不必为实例分配公共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
其他回答
只需启动另一个实例(如果它没有用处,也可以删除有问题的实例),并确保这次选中了“自动为您的实例分配公共IP地址”。如果不像路西法说的那样;为实例分配一个弹性IP (EIP),然后使用该IP登录。但是要小心,如果你运行的是免费的AWS层,一个EIP会让你花钱——这是另一个话题了。
如果实例在VPC内,请确保“DNS解析”和“DNS主机名”均为“yes”。您可以在Aws控制台UI中完成此操作。HTH !
对于那些正在使用Terraform的人。
如果需要启用DNS主机名,请在VPC中使用如下一行:
resource "aws_vpc" "app_vpc"
{
enable_dns_hostnames = true # Add this line
cidr_block = var.vpc_cidr
tags = { Name = "mostafa_vpc" }
}
这是解决这个问题的技巧,它不起作用:
提示—如果您的实例没有公共DNS名称,请在VPC控制台,选择VPC,在“概要”页签。如果“DNS解析”或“DNS主机名”中有一个为“否”,单击“编辑”,修改为“是”。
假设你已经这样做了,你仍然没有得到一个公共IP,然后在VPC管理屏幕转到有问题的子网,你可能会发现“自动分配公共IP”没有设置为yes。修改这个设置,我知道你不想在子网中创建一个新实例。据我所知,你不能在主机上修改这个,我试了又试,只是终止它。
在验证VPC和子网设置后,我的EC2实例仍然没有公共DNS。经过一天的寻找,我终于找到了解决办法。
我必须创建一个新的弹性IP地址,然后将其关联到我的实例。
从EC2仪表板:
从侧边栏转到弹性ip。
单击“分配新地址”,然后单击“分配”。
回到EC2仪表盘。进入“网络接口”。
选择没有公共DNS的EC2实例。然后操作-关联地址。
在“Address”字段中选择新创建的弹性IP地址。
“关联到私有IP地址”字段,选择没有公共DNS的私有IP地址。
单击关联地址。
您的EC2实例现在应该有一个公共DNS。
推荐文章
- 我如何获得亚马逊的AWS_ACCESS_KEY_ID ?
- 如何使所有对象在AWS S3桶公共默认?
- 为什么我应该使用亚马逊Kinesis而不是SNS-SQS?
- 如何重命名AWS S3 Bucket
- AWS ECS中的任务和服务之间有什么区别?
- 亚马逊SimpleDB vs亚马逊DynamoDB
- 亚马逊ECS和亚马逊EC2有什么区别?
- 我如何知道我在S3桶中存储了多少对象?
- S3 Bucket操作不应用于任何资源
- 将AWS凭证传递给Docker容器的最佳方法是什么?
- 当权限为S3时,AccessDenied for ListObjects for S3 bucket:*
- 电子邮件地址未验证(AWS SES)
- 使用Boto3将S3对象作为字符串打开
- AWS VPC - Internet网关vs. NAT
- 如何在AWS Lambda中加载npm模块?