如何解析 AWS EC2 的主机名

How to resolve hostname of AWS EC2

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

do not know what is ip-10-124-123-122

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

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

  1. 在 VPC 中将 enableDnsHostnamesenableDnsSupport 设置为 true: Using DNS with Your VPC - Amazon Virtual Private Cloud

  2. 将主机名从 ip-10-124-123-122 更改为 domainnameChanging the Hostname of Your Linux Instance - Amazon Elastic Compute Cloud

请注意,我确实有一个 EC2:port80 的网络服务器域名,但它与 EC2 的主机名无关。因为我是这样创建域名的:

https://domainname->route53->ALB:443->targetgroup->EC2 port 80. 

注意:EC2在非默认VPC中,VPC已经启用了DNS解析和DNS主机名。

如果我在该 EC2 的同一子网中的 EC2 上键入 nslookup ip-10-X-X-X.region.compute.internal,我可以看到 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?

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

Public DNS 名称将如下所示:

ec2-54-252-207-11.ap-southeast-2.compute.amazonaws.com

这个可以在网上解决。它实际上将按照名称建议解析为 54.252.207.11

私有 DNS 名称如下所示:

ip-172-31-10-201.ap-southeast-2.compute.internal

会解析为172.31.10.201

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

从 Internet 上的计算机,我可以解析 public 地址:

$ 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

从同一 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

底线:您似乎没有使用完整的 DNS 名称,这就是它对您不起作用的原因。这就像试图解析 facebook 而不是 facebook.com。不起作用。 (好吧,如果你定义一个默认的网络搜索域,它会,但这里不太适合。)