一个和我一起工作的人给了我登录到他的EC2控制台的EC2凭证。不是我设的局。一些实例显示公共dns名称,而其他实例则显示空白的公共dns。我希望能够连接到具有空白公共DNS的实例。我一直无法弄清楚为什么这些显示为空白。
当前回答
首先,这可能有两个原因:
已创建VPC,但忘记开启“公共DNS”。
要解决这个问题:
i)进入“AWS VPC控制台”,选择已创建的VPC。
ii)然后单击“操作”,然后启用DNS解析。
OR
您没有在EC2配置中启用公共ip-assign选项。
这里你不能改变设置;因此,创建一个ami映像,然后从中重新创建实例。
其他回答
首先,对于公共IP / DNS,您必须有一个正在运行的EC2服务(可以是实例/ Docker / Lightsail)。对于任何服务,你都将有两个不同的ip(私有和公共),一旦你主动选择了实例,安全选项卡下的安全组也是可用的。
步骤1:
您可以根据端口使用情况启用,例如如果您想使用HTTP和HTTPS端口托管网站
EC2->安全组->编辑入站规则->添加或删除所需的端口。
例如80,443,22等和端口的流量来源(如果你想让端口对所有人开放,请选择任何地方,或者如果你想为所选的ip打开应用程序-手动输入IPV4/IPV6。
完成上述配置后,创建弹性IP并将其附加到正在运行的EC2实例。一旦您将IP附加到实例,您的公共IP将是弹性IP
步骤2:
AWS还提供一项名为Route53的服务。在这里,您可以创建托管区域,并在创建后输入不带www的域名,您将获得托管区域的name Server值。
了解更多关于Route53的信息https://aws.amazon.com/route53/
对于那些正在使用Terraform的人。
如果需要启用DNS主机名,请在VPC中使用如下一行:
resource "aws_vpc" "app_vpc"
{
enable_dns_hostnames = true # Add this line
cidr_block = var.vpc_cidr
tags = { Name = "mostafa_vpc" }
}
只需启动另一个实例(如果它没有用处,也可以删除有问题的实例),并确保这次选中了“自动为您的实例分配公共IP地址”。如果不像路西法说的那样;为实例分配一个弹性IP (EIP),然后使用该IP登录。但是要小心,如果你运行的是免费的AWS层,一个EIP会让你花钱——这是另一个话题了。
这是解决这个问题的技巧,它不起作用:
提示—如果您的实例没有公共DNS名称,请在VPC控制台,选择VPC,在“概要”页签。如果“DNS解析”或“DNS主机名”中有一个为“否”,单击“编辑”,修改为“是”。
假设你已经这样做了,你仍然没有得到一个公共IP,然后在VPC管理屏幕转到有问题的子网,你可能会发现“自动分配公共IP”没有设置为yes。修改这个设置,我知道你不想在子网中创建一个新实例。据我所知,你不能在主机上修改这个,我试了又试,只是终止它。
对于那些使用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'
}]
}
}
推荐文章
- 亚马逊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模块?
- 亚马逊S3 -如何修复“我们计算的请求签名与签名不匹配”错误?
- 警告:未受保护的私钥文件!当尝试SSH到Amazon EC2实例时
- 使用boto3连接CloudFront时,如何选择AWS配置文件
- 在亚马逊云服务器上设置FTP
- 使用scp将文件复制到Amazon EC2实例?
- 无法将图像推送到Amazon ECR -由于“没有基本的身份验证凭据”而失败