如何解析 AWS EC2 的主机名

Posted

技术标签:

【中文标题】如何解析 AWS EC2 的主机名【英文标题】:How to resolve hostname of AWS EC2 【发布时间】:2020-03-05 05:57:03 【问题描述】:

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

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

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

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

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

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

注意,我确实有 EC2 的网络服务器的域名:端口 80,但它与 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是什么?

【问题讨论】:

您需要使用完整的 DNS 名称,而不仅仅是第一部分。 【参考方案1】:

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

公共 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 地址仅在该专用网络中才有意义。

从互联网上的一台电脑,我可以解析公共地址:

$ 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。不起作用。 (好吧,如果你定义一个默认的网络搜索域,它会,但这并不适合这里。)

【讨论】:

我使用 forums.aws.amazon.com/message.jspa?messageID=320576 从 route53 路由到 ip,我在 /etc/resolv.conf 中添加了一个域,现在 ip-10-124-123-122 可以解析为它的 ip 10.124。 123.122

以上是关于如何解析 AWS EC2 的主机名的主要内容,如果未能解决你的问题,请参考以下文章

如何让 AWS ELB 将实际主机名而不是 ELB 的主机名转发到目标组?

如何在亚马逊免费云主机amazon ec2安装lnmpa来搭建网站

我可以设置 ~/.ssh/config 来查找动态 EC2 主机名吗?

AWS - 防火墙管理器 - WAF 规则如何阻止来自 IP 地址的请求(无主机名)?

通过 ELB 访问 AWS EC2 实例

在 AWS OpsWorks 中更改主机名(厨师)