我特别感兴趣的是EC2实例如何同时具有公共IP和私有IP,而我登录EC2实例时只通过ifconfig命令看到一个网络接口?
答案 0 :(得分:1)
AWS Docs解释得很好 -
每个接收公共IP地址的实例也会获得一个 外部DNS主机名;例如, ec2-203-0-113-25.compute-1.amazonaws.com。我们解析了外部DNS hostname到网络外部实例的公共IP地址 实例的实例,以及实例的私有IPv4地址 在实例的网络内。公共IP地址映射到 通过网络地址转换的主要私有IP地址 (NAT)。
答案 1 :(得分:0)
让我试着按照我理解的方式解释你,
假设您有一台在办公室/学校中使用的计算机(本地桌面)。
Private IP Address
是无法在您的网络外访问的IP :
10.0.0.0 – 10.255.255.255
A类
172.16.0.0 – 172.31.255.255
B类
192.168.0.0 – 192.168.255.255
C类
现在你的机器会像许多其他人一样SWITCH or Firewall
支持公共IP(ISP Terminology时的静态IP),所以当有人需要从外面与你沟通时,他们会与使用公共IP,交换机将有转换作业并将该请求路由到您的计算机。
所以尽管你的机器只有一个网卡,你可以说你有一个本地地址和一个公共IP。
现在在AWS术语中将其称为Per AWS Documentation:
私有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主机名解析为的公共IP地址 实例网络外的实例,以及私有IPv4 实例网络中的实例地址。该 公共IP地址通过映射到主要私有IP地址 网络地址转换(NAT)。有关NAT的更多信息,请参阅 RFC 1631: The IP Network Address Translator (NAT).
这解释了AWS如何将公共IP转换为私有IP,请阅读AWS文档,因为它将进一步明确您的疑问。
希望这能清除你的怀疑