我创建了一个弹性 IP。列出的 IP 地址似乎是稳定的。它与一个实例相关联。但是,我得到了这种奇怪的行为:
- 为该 IP 列出的公共 DNS 包含与文字 IP 地址不同的地址。
- 公共 DNS 不解析为弹性 IP;它解析为 DNS 名称所暗示的 IP。
- 停止和启动实例会更改 IP 地址。
我尝试创建一个新的弹性 IP 地址和一个新实例并将它们关联起来,但我遇到了同样的错误。这里发生了什么?
我创建了一个弹性 IP。列出的 IP 地址似乎是稳定的。它与一个实例相关联。但是,我得到了这种奇怪的行为:
我尝试创建一个新的弹性 IP 地址和一个新实例并将它们关联起来,但我遇到了同样的错误。这里发生了什么?
是的,公共弹性 IP 地址是稳定的(当然,这就是它们存在的原因)。
您是指 DNS 名称将解析为不同的 IP 地址,具体取决于您是在 AWS 内部还是外部解析?
如果是这样,这是一个功能而不是“错误”。
如果您从 AWS 外部查找主机名,您将获得公共IP。如果您从 EC2 实例的命令行中查找相同的名称,您将获得私有IP(通常为 10.0.0.0 地址)。
这意味着您可以通过单个名称引用实例,但内部流量会自动通过本地网络路由,而不是通过(计费)公共接口。
我假设您正在查看 AWS 控制台,而不是直接使用 API 的程序的输出。
您在控制台中看到的“公共 DNS”是实例的公共 DNS,而不是弹性 IP 地址。如果实例与 ElasticIP 关联,则其公共 DNS 应在其中包含 ElasticIP 并解析为 ElasticIP。由于不是,我怀疑 AWS 控制台中存在错误。我注意到当 ElasticIP 地址关联或取消关联时,它显示地址有很多滞后。要确认这一点,您可以尝试完全清除浏览器历史记录和 cookie 并重新连接到控制台,以查看现在显示是否正确。或者您可以使用浏览器的隐身或隐私浏览模式。
如果您创建明显的公共 DNS 以匹配您的 ElasticIP 地址,我敢打赌它会正确解析。