如何解析AWS EC2的主机名

use*_*955 0 hostname amazon-ec2 amazon-web-services

我尝试访问我安装的 AWS EC2 中的服务。它显示错误:

不知道ip-10-124-123-122是什么

如何解析EC2的私有主机名:ip-10-124-123-122

这两个链接显示我可以将主机名更改ip-10-124-123-122为 EC2 的域名:

  1. enableDnsHostnames在 VPC 中将和设置enableDnsSupport为 true: 在您的 VPC 中使用 DNS - Amazon Virtual Private Cloud

  2. 将主机名从更改为ip-10-124-123-122:domainname更改 Linux 实例的主机名 - Amazon Elastic Compute Cloud

注意我确实有EC2的Web服务器的域名:端口80,但它与EC2的主机名无关。因为我是这样创建域名的:

https://domainname->route53->ALB:443->targetgroup->EC2 port 80. 
Run Code Online (Sandbox Code Playgroud)

注意:EC2 位于非默认 VPC 中,并且该 VPC 已启用 DNS 解析和 DNS 主机名。

如果我nslookup ip-10-X-X-X.region.compute.internal在与 EC2 位于同一子网中的 EC2 上键入内容,我可以看到 IP,但该 EC2 的 IP 未解析。

如果我nslookup ip-10-X-X-X.region.compute.internal在尝试访问该服务的机器上输入内容;

注意:如果我nslookup ip-10-124-123-122无法解决 EC2 问题。也许这就是原因?

上述步骤足以解析 EC2 的主机名吗?如果不。如何解决错误:不知道是什么ip-10-124-123-122

Joh*_*ein 5

每个 Amazon EC2 实例都有一个公共 DNS 名称和一个私有 DNS 名称

公共 DNS 名称将如下所示:

ec2-54-252-207-11.ap-southeast-2.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

这个可以在网上解决。54.252.207.11它实际上会按照名称的建议进行解析。

私有 DNS 名称将如下所示:

ip-172-31-10-201.ap-southeast-2.compute.internal
Run Code Online (Sandbox Code Playgroud)

它将被解决172.31.10.201

私有 DNS 名称只能在其所在的 VPC 内进行解析。这是因为 IP 地址仅在该专用网络内才有意义。

从互联网上的计算机上,我可以解析公共地址:

$ nslookup ec2-54-252-207-77.ap-southeast-2.compute.amazonaws.com
Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:   ec2-54-252-207-77.ap-southeast-2.compute.amazonaws.com
Address: 54.252.207.77
Run Code Online (Sandbox Code Playgroud)

从同一 VPC 内的 Amazon EC2 实例,我可以解析内部 IP 地址:

$ nslookup ip-172-31-10-201.ap-southeast-2.compute.internal
Server:     172.31.0.2
Address:    172.31.0.2#53

Non-authoritative answer:
Name:   ip-172-31-10-201.ap-southeast-2.compute.internal
Address: 172.31.10.201
Run Code Online (Sandbox Code Playgroud)

底线:看来您没有使用完整的 DNS Name,这就是它不适合您的原因。这就像试图解决facebook而不是facebook.com。不起作用。(好吧,如果您定义一个默认的网络搜索域,那就可以了,但这在这里不太合适。)