【问题标题】:How does an EC2 instance have both a private and a public IP with only one network interfaceEC2 实例如何同时拥有私有和公有 IP,只有一个网络接口
【发布时间】:2018-07-08 01:32:46
【问题描述】:

我特别感兴趣的是 EC2 实例如何同时具有公共 IP 和私有 IP,而我登录到 EC2 实例并且通过 ifconfig 命令只看到一个网络接口?

【问题讨论】:

    标签: amazon-web-services networking amazon-ec2 interface ip


    【解决方案1】:

    AWS Docs 解释得很好——

    每个接收公共 IP 地址的实例也被赋予一个 外部 DNS 主机名;例如, ec2-203-0-113-25.compute-1.amazonaws.com。我们解析外部 DNS 主机名到网络外实例的公网 IP 地址 实例的私有 IPv4 地址 在实例的网络中。公共 IP 地址映射到 通过网络地址转换的主要私有 IP 地址 (NAT)。

    【讨论】:

      【解决方案2】:

      让我试着用我理解的方式来解释你,

      假设您在办公室/学校中有一台正在使用的机器(本地桌面)。

      Private IP Address在您的网络之外无法访问的 IP

      10.0.0.0 – 10.255.255.255A类

      172.16.0.0 – 172.31.255.255B类

      192.168.0.0 – 192.168.255.255C类

      现在您的机器将像许多其他具有公共 IP(ISP Terminology 的情况下为静态 IP)一样位于 SWITCH or Firewall 后面,因此当有人需要从外部与您通信时,他们将与您与您的公共通信ip ,交换机将负责将该请求转换并路由到您的机器。

      因此,尽管您的机器只有一张网卡,但您可以说您有一个本地地址和一个公共 IP。

      现在按照 AWS Documentation 用 AWS 术语说:

      私有 IPv4 地址是无法通过 Internet 访问的 IP 地址。您可以使用私有 IPv4 地址在同一网络(EC2-Classic 或 VPC)中的实例之间进行通信。

      当您启动一个实例时,AWS 会为该实例分配一个主要的私有 IPv4 地址。每个实例还被赋予一个内部 DNS 主机名,该主机名解析为主要私有 IPv4 地址;例如,ip-10-251-50-12.ec2.internal。您可以使用内部 DNS 主机名在同一网络中的实例之间进行通信,但 AWS 无法解析实例所在网络之外的 DNS 主机名

      VPC 中的每个实例都有一个默认网络接口 (eth0),该接口分配了主要的私有 IPv4 地址。

      Public IP address 是可从 Internet 访问的 IPv4 地址。您可以使用公共地址在您的实例和 Internet 之间进行通信。

      AWS 将外部 DNS 主机名解析为 实例网络外的实例,以及私有 IPv4 实例的网络中的实例地址。这 公共 IP 地址通过映射到主私有 IP 地址 网络地址转换 (NAT)。有关 NAT 的更多信息,请参阅 RFC 1631: The IP Network Address Translator (NAT).

      这解释了 AWS 如何将公共 IP 转换为私有 IP,请阅读 AWS 文档,因为它将进一步消除您的疑问。

      希望这能消除你的疑虑

      【讨论】:

        猜你喜欢
        • 2020-05-13
        • 1970-01-01
        • 2020-01-23
        • 2020-12-05
        • 1970-01-01
        • 2015-05-13
        • 2015-01-06
        • 1970-01-01
        • 2019-04-10
        相关资源
        最近更新 更多