Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Amazon EC2 实例 IP 寻址

我们将为您的实例提供 IP 地址和 IPv4 DNS 主机名。这些会因实例的启动位置 (EC2-Classic 平台或 Virtual Private Cloud (VPC) 中)而异。有关 EC2-Classic 和 EC2-VPC 平台的信息,请参阅支持的平台

Amazon EC2 和 Amazon VPC 支持 IPv4 和 IPv6 寻址协议。默认情况下,Amazon EC2 和 Amazon VPC 使用 IPv4 寻址协议;您无法禁用此行为。创建 VPC 时,您必须指定 IPv4 CIDR 块 (一系列私有 IPv4 地址)。您可以选择将 IPv6 CIDR 块分配给您的 VPC 和子网,并将来自该块的 IPv6 地址分配给您子网中的实例。IPv6 地址可通过 Internet 访问。有关 IPv6 的更多信息,请参阅 Amazon VPC 用户指南中的您的 VPC 中的 IP 地址

EC2-Classic 平台不支持 IPv6。

私有 IPv4 地址和内部 DNS 主机名

私有 IPv4 地址是指无法通过 Internet 访问的 IP 地址。您可以使用私有 IPv4 地址在同一网络 (EC2-Classic 或 VPC) 中实现实例之间的通信。有关私有 IPv4 地址标准和规范的更多信息,请参阅 RFC 1918

注意

您可以创建一个具有公共可路由的 CIDR 块 (不在 RFC 1918 中指定的私有 IPv4 地址范围内) 的 VPC。但是,出于本文档的写作目的,我们的私有 IPv4 地址 (或“私有 IP 地址”) 指的是位于 VPC 的 IPv4 CIDR 范围内的 IP 地址。

当您启动实例时,我们会使用 DHCP 为实例分配私有 IPv4 地址。另外,还为每个实例指定了一个可解析为实例的私有 IPv4 地址的内部 DNS 主机名,例如,ip-10-251-50-12.ec2.internal。您可以使用内部 DNS 主机名在同一网络中实现实例之间的通信,但我们无法解析实例所在网络之外的 DNS 主机名。

在 VPC 中启动的实例将获得一个主要私有 IP 地址 (在子网的 IPv4 地址范围内)。有关更多信息,请参阅 Amazon VPC 用户指南 中的子网大小调整。如果您在启动实例时未指定主要私有 IP 地址,我们会在子网的 IPv4 范围内为您选择一个可用的 IP 地址。VPC 中的每个实例都具有分配了主要私有 IPv4 地址的默认网络接口 (eth0)。您还可以指定其他私有 IPv4 地址,即辅助私有 IPv4 地址。与主要私有 IP 地址不同的是,辅助私有 IP 地址可以从一个实例重新分配到另一个实例。有关更多信息,请参阅 多个 IP 地址

对于在 EC2-Classic 中启动的实例,我们会在实例停止或终止时释放私有 IPv4 地址。如果您重新启动已停止的实例,该实例会收到新的私有 IPv4 地址。

对于在 VPC 中启动的实例,私有 IPv4 地址会在实例停止并重新启动时保持与网络接口的关联,并在实例终止时释放。

如果您在 EC2-Classic 中创建自定义防火墙配置,那么必须在您的防火墙中创建规则,以允许来自 Amazon DNS 服务器地址的端口 53 (DNS) (目标端口在临时范围内) 的入站流量,否则,实例的内部 DNS 解析会失败。如果您的防火墙无法自动允许 DNS 查询响应,那么您就需要允许来自 Amazon DNS 服务器的 IP 地址的流量。要获取 Amazon DNS 服务器的 IP 地址,请在您的实例中使用以下命令:

Copy
ipconfig /all | findstr /c:"DNS Servers"

公有 IPv4 地址和外部 DNS 主机名

公有 IP 地址是指可通过 Internet 访问的 IPv4 地址。您可以使用公用 地址在您的实例和 Internet 之间进行通信。

同样,将为接收公有 IP 地址的每个实例指定一个外部 DNS 主机名,例如,ec2-203-0-113-25.compute-1.amazonaws.com。我们会将外部 DNS 主机名解析为实例所在网络外的实例的公有 IP 地址,以及实例所在网络内的实例的私有 IPv4 地址。公有 IP 地址通过网络地址转换 (NAT) 映射到主要私有 IP 地址。有关 NAT 的更多信息,请参阅 RFC 1631: The IP Network Address Translator (NAT) 部分。

当您在 EC2-Classic 中启动实例时,我们会自动从 EC2-Classic 公有 IPv4 地址池中为该实例分配一个公有 IP 地址。您不能修改此行为。当您在某个 VPC 中启动实例时,您子网的一个属性会确定在该子网中启动的实例是否从 EC2-VPC 公有 IPv4 地址池接收公有 IP 地址。默认情况下,我们会为在默认 VPC 中启动的实例分配公有 IP 地址,而不会为在非默认子网中启动的实例分配公有 IP 地址。

您可以通过执行以下操作,控制 VPC 中的实例是否接收公有 IP 地址:

公有 IP 地址将从 Amazon 的公有 IPv4 地址池分配给实例,不与您的 AWS 账户关联。在取消公有 IP 地址与实例的关联后,该地址即会释放回公有 IPv4 地址池中,并且您无法重新使用该地址。

您不能从实例手动关联或取消关联公有 IP 地址。在某些情况下,我们会从您的实例释放公有 IP 地址,或为其分配新的地址:

  • 当您的实例已停止或终止后,我们释放它的公有 IP 地址。已停止的实例在重新启动时会接收新的公有 IP 地址。

  • 如果您将弹性 IP 地址与实例相关联,或在 VPC 中将弹性 IP 地址与实例的主要网络接口 (eth0) 相关联,我们会释放实例的公有 IP 地址。当您从实例取消与弹性 IP 地址的关联时,实例会收到新的公有 IP 地址。

  • 如果 VPC 中的实例的公有 IP 地址已释放,则在多个网络接口与实例相连的情况下,该实例不会接收新地址。

如果您需要可根据需要关联到实例并从实例进行关联的永久公有 IP 地址,可改为使用弹性 IP 地址。例如,如果您使用动态 DNS 来将现有 DNS 名称映射到新实例的公有 IP 地址,则可能需要 24 小时,以便 IP 地址通过 Internet 进行传播。其结果是,新的实例可能无法接收流量,而已终止实例继续接收请求。要解决此问题,请使用弹性 IP 地址。您可以分配自己的弹性 IP 地址,并将其与您的实例相关联。有关更多信息,请参阅 弹性 IP 地址

如果您的实例在 VPC 中且分配有弹性 IP 地址,则在启用 DNS 主机名后,实例会收到一个 IPv4 DNS 主机名。有关更多信息,请参阅 Amazon VPC 用户指南中的在您的 VPC 中使用 DNS

注意

通过公有 NAT IP 地址访问其他实例的实例需要支付区域或 Internet 数据传输费用,具体取决于这些实例是否处于同一区域。

弹性 IP 地址 (IPv4)

弹性 IP 地址是指可分配给您的账户的公有 IPv4 地址。您可以根据需要将其关联到实例并从实例进行关联,它分配给您的账户,直到您选择释放。有关弹性 IP 地址及其使用方法的更多信息,请参阅弹性 IP 地址

我们不支持对 IPv6 使用弹性 IP 地址。

Amazon DNS 服务器

Amazon 提供了 DNS 服务器,可将 Amazon 提供的 IPv4 DNS 主机名解析为 IPv4 地址。在 EC2-Classic 中,此 Amazon DNS 服务器位于 172.16.0.23。在 EC2-VPC 中,Amazon DNS 服务器位于 VPC 网络范围起始地址 + 2 的位置。有关更多信息,请参阅 Amazon VPC 用户指南 中的 Amazon DNS 服务器

IPv6 地址

您可以选择将 IPv6 CIDR 块与 VPC 关联,并将 IPv6 CIDR 块与子网关联。我们将自动从 Amazon 的 IPv6 地址池中为您的 VPC 分配 IPv6 CIDR 块,因此您无法自行选择范围。有关更多信息,请参阅 Amazon VPC 用户指南中的以下主题:

IPv6 地址具有全局唯一性,因此可通过 Internet 访问。如果您的 VPC 和子网关联了 IPv6 CIDR 块,并且满足以下条件之一,则 VPC 中的实例会收到 IPv6 地址:

  • 您的子网配置为在启动期间向实例自动分配 IPv6 地址。有关更多信息,请参阅修改子网的 IPv6 寻址属性

  • 您在启动期间为实例分配了 IPv6 地址。

  • 您在启动后为实例的主网络接口分配了 IPv6 地址。

  • 您在启动后为同一子网中的某个网络接口分配了 IPv6 地址,并将此网络接口附加到您的实例。

当实例在启动期间收到 IPv6 地址时,此地址将与实例的主网络接口 (eth0) 关联。您可以取消 IPv6 地址与该网络接口的关联。我们不支持为您的实例使用 IPv6 DNS 主机名。

IPv6 地址会在您停止和启动实例时保留下来,并在您终止实例时释放出来。您无法重新分配已分配给某个网络接口的 IPv6 地址;您必须先取消分配此 IPv6 地址。

通过将 IPv6 地址分配给附加到实例的网络接口,您可以为实例分配更多的 IPv6 地址。可以分配给网络接口的 IPv6 地址数量以及可以附加到实例的网络接口数量因实例类型而异。有关更多信息,请参阅 每个实例类型的每个网络接口的 IP 地址

EC2-Classic 和 EC2-VPC 之间的 IP 地址区别

下表总结了在 EC2-Classic、默认子网和非默认子网中启动的实例 IP 地址之间的区别。

性能 EC2-Classic 默认子网 非默认子网

公有 IP 地址 (来自 Amazon 的公有 IPv4 地址池)

您的实例会收到一个公有 IP 地址。

默认情况下,您的实例不会接收公有 IP 地址,除非您在启动过程中另行指定,或是您修改子网的公有 IP 地址属性。

默认情况下,您的实例不会接收公有 IP 地址,除非您在启动过程中另行指定,或是您修改子网的公有 IP 地址属性。

私有 IPv4 地址

您的实例会在每次启动时收到一个来自 EC2-Classic 范围的私有 IP 地址。

您的实例会收到一个在您的默认子网 IPv4 地址范围的静态私有 IP 地址。

您的实例会收到一个来自您的子网 IPv4 地址范围的静态私有 IP 地址。

多个 IPv4 地址

我们会为您的实例选择一个私有 IP 地址;不支持多个 IP 地址。

您可以为实例分配多个私有 IP 地址。

您可以为实例分配多个私有 IP 地址。

网络接口

IP 地址与实例相关联;不支持网络接口。

IP 地址与网络接口相关联。每个实例都有一个或多个网络接口。

IP 地址与网络接口相关联。每个实例都有一个或多个网络接口。

弹性 IP 地址 (IPv4)

当您停止实例时,弹性 IP 地址会取消与实例的关联。

当您停止实例时,弹性 IP 地址会保持与实例的关联。

当您停止实例时,弹性 IP 地址会保持与实例的关联。

DNS 主机名 (IPv4)

DNS 主机名默认处于启用状态。

DNS 主机名默认处于启用状态。

默认情况下 DNS 主机名为禁用状态,但有一种情况除外,即当您在 Amazon VPC 控制台中使用 VPC 向导创建 VPC 时。

IPv6 地址 不支持. 您的实例无法接收 IPv6 地址。 默认情况下,您的实例无法接收 IPv6 地址,除非您已将某个 IPv6 CIDR 块与您的 VPC 和子网关联,并在启动期间指定了一个 IPv6 地址或修改了子网的 IPv6 寻址属性。 默认情况下,您的实例无法接收 IPv6 地址,除非您已将某个 IPv6 CIDR 块与您的 VPC 和子网关联,并在启动期间指定了一个 IPv6 地址或修改了子网的 IPv6 寻址属性。

使用实例的 IP 地址

您可以查看分配给实例的 IP 地址,在启动期间将公有 IPv4 地址分配给实例,或在启动期间将 IPv6 地址分配给实例。

确定您的公有、私有和弹性 IP 地址

您可以使用 Amazon EC2 控制台来确定实例的私有 IPv4 地址、公有 IPv4 地址和弹性 IP 地址。您还可以通过使用实例元数据,从实例内确定实例的公有 IPv4 地址和私有 IPv4 地址。有关更多信息,请参阅 实例元数据和用户数据

使用控制台确定实例的私有 IPv4 地址

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择实例。在详细信息窗格中,从 Private IPs 字段中获取私有 IPv4 地址,并从 Private DNS 字段中获取内部 DNS 主机名。

  4. (仅限 VPC) 如果您为附加到实例的网络接口分配了一个或多个辅助私有 IPv4 地址,则可从 Secondary private IPs 字段中获取这些 IP 地址。

  5. (仅限 VPC) 或者,在导航窗格中,选择 Network Interfaces,然后选择与您的实例关联的网络接口。

  6. Primary private IPv4 IP 字段中获取主要私有 IP 地址,从 Private DNS (IPv4) 字段中获取内部 DNS 主机名。

  7. 如果您为网络接口分配了辅助私有 IP 地址,则可从 Secondary private IPv4 IPs 字段中获取这些 IP 地址。

使用控制台确定实例的公有 IPv4 地址

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择实例。在详细信息窗格中,从 IPv4 Public IP 字段中获取公有 IP 地址,从 Public DNS (IPv4) 字段中获取外部 DNS 主机名。

  4. 如果弹性 IP 地址已与实例关联,则可从 Elastic IPs 字段中获取弹性 IP 地址。

    注意

    如果您已将弹性 IP 地址与实例关联,则 IPv4 Public IP 字段也将显示弹性 IP 地址。

  5. (仅限 VPC) 或者,在导航窗格中,选择 Network Interfaces,然后选择与您的实例关联的网络接口。

  6. IPv4 Public IP 字段获取公有 IP 地址。星号 (*) 表示映射到主要私有 IPv4 地址的公有 IPv4 地址或弹性 IP 地址。

    注意

    公有 IPv4 地址在控制台中显示为网络接口的属性,但它通过 NAT 映射到主要私有 IPv4 地址。因此,如果您检查实例网络接口的属性 (例如,通过 ifconfig [Linux] 或 ipconfig [Windows]),则不会显示公有 IP 地址。要从实例内确定实例的公有 IPv4 地址,您可以使用实例元数据。

使用实例元数据确定实例的 IPv4 地址

  1. 连接到您的实例。

  2. 使用以下命令访问私有 IP 地址:

    Copy
    PS C:\> Invoke-RestMethod http://169.254.169.254/latest/meta-data/local-ipv4
  3. 使用以下命令访问公有 IP 地址:

    Copy
    PS C:\> Invoke-RestMethod http://169.254.169.254/latest/meta-data/public-ipv4

    请注意,如果弹性 IP 地址与实例相关联,则返回的值是弹性 IP 地址。

确定 IPv6 地址

(仅限 VPC) 您可以使用 Amazon EC2 控制台确定实例的 IPv6 地址。

使用控制台确定实例的 IPv6 地址

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择实例。在详细信息窗格中,从 IPv6 IPs 获取 IPv6 地址。

使用实例元数据确定实例的 IPv6 地址

  1. 连接到您的实例。

  2. 使用以下命令查看 IPv6 地址 (您可以从http://169.254.169.254/latest/meta-data/network/interfaces/macs/中获取 MAC 地址):

    Copy
    PS C:\> Invoke-RestMethod http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s

在实例启动期间分配公有 IPv4 地址

如果在 EC2-Classic 中启动实例,则默认情况下,系统会为实例分配公有 IPv4 地址。您不能修改此操作。

在 VPC 中,所有子网都有一个属性可指定是否为子网中启动的实例分配公有 IP 地址。默认情况下,非默认子网的此属性设置为 false,默认子网的此属性设置为 true。启动实例时,您也可以通过公有 IPv4 寻址功能来控制是否为实例分配公有 IPv4 地址;您可以覆盖子网 IP 寻址属性的默认行为。公有 IPv4 地址从 Amazon 的公有 IPv4 地址池进行分配,并分配给设备索引为 eth0 的网络接口。此功能取决于启动实例时的特定条件。

重要

启动后,即无法手动将该公有 IP 地址与您的实例取消关联。在某些情况下,它会自动释放,之后无法重新使用。有关更多信息,请参阅 公有 IPv4 地址和外部 DNS 主机名。如果需要可以随意关联或取消关联的永久公有 IP 地址,请在启动后向实例分配弹性 IP 地址。有关更多信息,请参阅 弹性 IP 地址

在启动实例时访问公有 IP 地址分配功能

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择 Launch Instance

  3. 选择 AMI 和实例类型,然后选择 Next: Configure Instance Details

  4. 配置实例详细信息页面中,为网络选择一个 VPC。这将显示 Auto-assign Public IP 列表。选择 EnableDisable 可覆盖子网的默认设置。

    重要

    如果您指定多个网络接口,则不能自动分配公有 IP 地址。此外,如果您将某个现有的网络接口指定为 eth0,则无法使用自动分配公有 IP 功能覆盖子网设置。

  5. 按照向导中后续页面中的步骤完成实例的设置。有关向导配置选项的更多信息,请参阅启动实例。在最后的 Review Instance Launch 页面上,检查您的设置,然后选择 Launch 以选择一个密钥对并启动您的实例。

  6. 实例页面中,选择您的新实例,并在详细信息窗格的 IPv4 Public IP 字段中查看其公有 IP 地址。

公有 IP 地址分配功能只在启动时可用。然而,无论您是否在启动时为实例分配公有 IP 地址,您都可以在启动后将弹性 IP 地址与实例相关联。有关更多信息,请参阅 弹性 IP 地址。您还可以修改子网的公有 IPv4 寻址行为。有关更多信息,请参阅修改子网的公有 IPv4 寻址属性

使用命令行启用或禁用公有 IP 寻址功能

  • 您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

    • --associate-public-ip-address--no-associate-public-ip-address 选项与 run-instances 命令 (AWS CLI) 结合使用

    • -AssociatePublicIp 参数与 New-EC2Instance 命令 (适用于 Windows PowerShell 的 AWS 工具) 结合使用

向实例分配 IPv6 地址

如果您的 VPC 和子网有与之关联的 IPv6 CIDR 块,则您可以在启动期间或之后向实例分配 IPv6 地址。IPv6 地址从子网的 IPv6 地址范围进行分配,并分配给设备索引为 eth0 的网络接口。

在启动期间向实例分配 IPv6 地址

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择一个 AMI 和实例类型,然后选择 Next: Configure Instance Details

    注意

    请确保您选择的实例类型支持 IPv6 地址。有关更多信息,请参阅 实例类型

  3. 配置实例详细信息页面中,为网络选择一个 VPC,为子网选择一个子网。对于自动分配 IPv6 IP,请选择启用

  4. 遵循向导中的剩余步骤来启动您的实例。

或者,您可以在启动后向实例分配 IPv6 地址。

在启动后向实例分配 IPv6 地址

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择您的实例,然后依次选择 ActionsManage IP Addresses

  4. IPv6 Addresses 下,选择 Assign new IP。您可以指定一个处于子网范围内的 IPv6 地址,也可以保留 Auto-assign 值,从而让 Amazon 为您选择一个 IPv6 地址。

  5. 选择 Save

注意

如果您使用 Amazon Linux 2016.09.0 或更高版本、或 Windows Server 2008 R2 或更高版本启动实例,则系统已经为 IPv6 配置实例,并且您无需执行其他步骤即可确保实例可以识别 IPv6 地址。如果您从旧版 AMI 中启动实例,则可能需要手动配置实例。有关更多信息,请参阅 Amazon VPC 用户指南中的在实例中配置 IPv6

使用命令行分配 IPv6 地址

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

取消分配给实例的 IPv6 地址

您可以使用 Amazon EC2 控制台取消分配给实例的 IPv6 地址。

取消分配给实例的 IPv6 地址

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择您的实例,然后依次选择 ActionsManage IP Addresses

  4. IPv6 Addresses 下,选择要取消分配的 IPv6 地址对应的 Unassign

  5. 选择是,请更新

使用命令行取消分配 IPv6 地址

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2