如何解析 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 中将 enableDnsHostnames
和 enableDnsSupport
设置为 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 主机名吗?