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

您的 VPC 中的 IP 地址

IP 地址使 VPC 中的资源能够相互通信以及与 Internet 上的资源进行通信。Amazon EC2 和 Amazon VPC 支持 IPv4 及 IPv6 寻址协议。

默认情况下,Amazon EC2 和 Amazon VPC 使用 IPv4 寻址协议。创建 VPC 时,必须为其分配 IPv4 CIDR 块 (一系列私有 IPv4 地址)。私有 IPv4 地址无法通过 Internet 访问。要通过 Internet 连接您的实例或实现实例与其他具有公共终端节点的 AWS 服务之间的通信,您可以向实例分配全球唯一的公有 IPv4 地址。

您可以选择向 VPC 和子网关联 IPv6 CIDR 块,然后将此块中的 IPv6 地址分配给 VPC 中的资源。IPv6 地址是公有的,可通过 Internet 访问。

注意

要确保您的实例可以与 Internet 通信,您还必须将 Internet 网关附加到 VPC。有关更多信息,请参阅 Internet 网关

您的 VPC 可在双堆栈模式下运行:您的资源可通过 IPv4 和/或 IPv6 进行通信。IPv4 和 IPv6 地址是彼此独立的;您必须在 VPC 中分别针对 IPv4 和 IPv6 配置路由和安全设置。

下表总结了 Amazon EC2 和 Amazon VPC 中 IPv4 与 IPv6 之间的差异。

IPv4 和 IPv6 特性与限制

IPv4 IPv6
格式为 32 位,4 组,每组 4 个数字。 格式为 128 位,8 组,每组 4 个十六进制数字。
所有 VPC 的默认项和必需值;无法删除。 可以选择启用。
VPC CIDR 块大小可以从 /16 到 /28。 VPC CIDR 块大小固定为 /56。
子网 CIDR 块大小可以从 /16 到 /28。 子网 CIDR 块大小固定为 /64。
您可以为您的 VPC 选择私有 IPv4 CIDR 块。 我们从 Amazon 的 IPv6 地址池中为您的 VPC 选择 IPv6 CIDR 块。您不能选择自己的范围。
存在私有 IP 地址和公有 IP 地址之分。要与 Internet 通信,需要通过网络地址转换 (NAT) 将公有 IPv4 地址映射为主要私有 IPv4 地址。 不区分公有 IP 地址和私有 IP 地址。IPv6 地址是公有的。
所有实例类型都支持。 所有当前一代的实例类型 (但 M3 和 G2 除外) 都支持。有关更多信息,请参阅 Amazon EC2 实例类型
受 EC2-Classic 和通过 ClassicLink 与 VPC 连接的 EC2-Classic 支持。 不受 EC2-Classic 和通过 ClassicLink 与 VPC 连接的 EC2-Classic 支持。
所有 AMI 都支持。 在针对 DHCPv6 进行了配置的 AMI 上自动受到支持。Amazon Linux 版本 2016.09.0 和更高版本以及 Windows Server 2008 R2 和更高版本进行了 DHCPv6 方面的配置。对于其他 AMI,您必须手动配置实例以识别分配的任何 IPv6 地址。
实例会收到与其私有 IPv4 地址对应的 Amazon 提供的私有 DNS 主机名,如果适用,还会收到与其公有 IPv4 或弹性 IP 地址对应的公有 DNS 主机名。 不支持 Amazon 提供的 DNS 主机名。
支持弹性 IPv4 地址。 不支持弹性 IPv6 地址。
支持 VPC VPN 连接和客户网关、NAT 设备及 VPC 终端节点。 不支持 VPC VPN 连接和客户网关、NAT 设备及 VPC 终端节点。

我们支持通过虚拟专用网关到 AWS Direct Connect 连接的 IPv6 流量。有关更多信息,请参阅 AWS Direct Connect 用户指南

私有 IPv4 地址

私有 IPv4 地址 (也称作私有 IP 地址) 无法通过 Internet 访问,但可用于 VPC 中实例之间的通信。当您在 VPC 中启动实例时,系统会将子网地址范围中的一个主要私有 IPv4 地址分配给该实例的默认网络接口 (eth0)。另外,还为每个实例指定一个可解析为实例私有 IP 地址的私有 (内部) DNS 主机名。如果您未指定主要私有 IP 地址,我们会在子网范围内为您选择可用的 IP 地址。有关网络接口的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Elastic Network Interfaces

您可以为 VPC 中运行的实例分配其他私有 IP 地址,即所谓的辅助私有 IP 地址。与主要私有 IP 地址不同的是,您可以将一个网络接口的辅助私有 IP 地址重新分配给另一个网络接口。私有 IP 地址会在实例停止并重新启动时保持与网络接口的关联,并在实例终止时释放。有关主要和次要 IP 地址的更多信息,请参见Amazon EC2 用户指南(适用于 Linux 实例)中的Multiple IP Addresses部分。

注意

我们所说的私有 IP 地址是 VPC 的 IPv4 CIDR 范围内的 IP 地址。大部分 VPC IP 地址范围均处于 RFC 1918 中指定的私有 (非公有可路由) IP 地址范围内;但是,您可为您的 VPC 使用公有可路由的 CIDR 块。不管您的 VPC 使用何种 IP 地址范围,我们都不支持从您的 VPC 的 CIDR 块 (包括公共可路由的 CIDR 块) 直接访问 Internet。您必须通过网关 (例如,Internet 网关、虚拟专用网关、VPN 连接或 AWS Direct Connect) 设置 Internet 访问。

公有 IPv4 地址

所有子网都有一个用于确定在子网中创建的网络接口是否自动接收公有 IPv4 地址 (在本主题中也称作公有 IP 地址) 的属性。因此,当您在启用了此属性的子网中启动实例时,系统会向为此实例创建的主网络接口 (eth0) 分配一个公有 IP 地址。公有 IP 地址通过网络地址转换 (NAT) 映射到主要私有 IP 地址。

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

公有 IP 地址将从 Amazon 的公有 IP 地址池分配,它不与您的账户关联。在公有 IP 地址与您的实例取消关联后,该地址即释放回该池,并且不再可供您使用。您不能手动关联或取消关联公有 IP 地址。而是在某些情况下,我们从您的实例释放该公有 IP 地址,或向其分配新地址。有关详细信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的公有 IP 地址

如果您需要向您的账户分配一个永久公有 IP 地址 (您可根据需要将其分配给实例或将其从实例中删除),请改为使用弹性 IP 地址。有关更多信息,请参阅 弹性 IP 地址

如果您的 VPC 启用了对 DNS 主机名的支持,则系统还会向收到公有 IP 地址或弹性 IP 地址的每个实例分配一个公有 DNS 主机名。我们会将公有 DNS 主机名解析为该实例在实例网络外的公有 IP 地址和在实例网络内的私有 IP 地址。有关更多信息,请参阅 在您的 VPC 中使用 DNS

IPv6 地址

您可以选择向 VPC 和子网关联 IPv6 CIDR 块。有关更多信息,请参阅以下主题:

如果您的 VPC 和子网关联了 IPv6 CIDR 块,并且满足以下条件之一,则 VPC 中的实例会收到 IPv6 地址:

  • 您的子网配置为在启动期间向实例的主网络接口自动分配 IPv6 地址。

  • 您在启动期间向实例手动分配 IPv6 地址。

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

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

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

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

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

IPv6 地址是全球唯一的,因此可通过 Internet 访问。您可以通过控制子网的路由或通过使用安全组和网络 ACL 规则来控制能否通过实例的 IPv6 地址对其进行访问。有关更多信息,请参阅 安全性

有关预留 IPv6 地址范围的更多信息,请参阅 IANA IPv6 特殊用途地址注册表RFC4291

子网的 IP 寻址行为

所有子网都有一个用于确定是否向在该子网中创建的网络接口分配公有 IPv4 地址和 IPv6 地址 (如果适用) 的可修改属性。这包括当您在该子网中启动实例时为实例创建的主网络接口 (eth0)。

不管子网属性如何,您仍然可以在启动时覆盖特定实例的此设置。有关更多信息,请参阅 在实例启动期间分配公有 IPv4 地址在实例启动期间分配 IPv6 地址

使用 IP 地址

您可以修改子网的 IP 寻址行为、在启动期间向实例分配公有 IPv4 地址并向您的实例分配/取消分配 IPv6 地址。

修改子网的公有 IPv4 寻址属性

默认情况下,非默认子网的 IPv4 公有寻址属性设置为 false,默认子网的此属性设置为 true。Amazon EC2 启动实例向导创建的非默认子网属于例外 - 该向导会将此属性设置为 true。您可以使用 Amazon VPC 控制台修改此属性。

修改子网的公有 IPv4 寻址行为

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

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

  3. 选择您的子网,然后依次选择 Subnet ActionsModify auto-assign IP settings

  4. 如果选中,则 Enable auto-assign public IPv4 address 复选框会为在所选子网中启动的所有实例请求公有 IPv4 地址。根据需要选中或清除该复选框,然后选择 Save

修改子网的 IPv6 寻址属性

默认情况下,所有子网的 IPv6 寻址属性都设置为 false。您可以使用 Amazon VPC 控制台修改此属性。如果您为子网启用了 IPv6 寻址属性,则在此子网中创建的网络接口会收到此子网范围内的 IPv6 地址。在此子网中启动的实例会在主网络接口上收到一个 IPv6 地址。

您的子网必须具有关联的 IPv6 CIDR 块。

注意

如果您为子网启用了 IPv6 寻址功能,则只有在您的网络接口或实例是使用 Amazon EC2 API 的 2016-11-15 版本或更高版本创建的情况下,您的网络接口或实例才会接收 IPv6 地址。Amazon EC2 控制台使用最新的 API 版本。

修改子网的 IPv6 寻址行为

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

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

  3. 选择您的子网,然后依次选择 Subnet ActionsModify auto-assign IP settings

  4. 如果选中 Enable auto-assign IPv6 address 复选框,则会为在所选子网中创建的所有网络接口请求 IPv6 地址。根据需要选中或清除该复选框,然后选择 Save

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

您可以控制是否在启动时为默认子网或非默认子网中的实例分配公有 IPv4 地址。

重要

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

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

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

  2. 选择 Launch Instance

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

  4. Configure Instance Details (配置实例详细信息) 页面中的 Network (网络) 列表中选择一个 VPC。这将显示 Auto-assign Public IP 列表。选择 Enable (启用)Disable (禁用) 可覆盖子网的默认设置。

    重要

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

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

  6. Instances (实例) 屏幕上,选择您的实例。您可以在 Description 选项卡上的 IPv4 Public IP 字段中查看实例的公有 IP 地址。或者,也可以在导航窗格中,选择 Network Interfaces,然后选择实例的 eth0 网络接口。您可在 IPv4 Public IP 字段中查看公有 IP 地址。

    注意

    公有 IPv4 地址在控制台中显示为网络接口的属性,但它通过 NAT 映射到主要私有 IPv4 地址。因此,如果您通过对 Windows 实例执行 ipconfig 或对 Linux 实例执行 ifconfig 等方式来检查实例上网络接口的属性,则不会显示公有 IP 地址。要从实例内确定实例的公有 IP 地址,您可以使用实例元数据。有关更多信息,请参阅实例元数据和用户数据

此功能在启动时才可用。然而,无论您是否在启动时为实例分配公有 IPv4 地址,您都可以在启动后将弹性 IP 地址与实例相关联。有关更多信息,请参阅 弹性 IP 地址

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

您可以在启动期间向实例自动分配 IPv6 地址。为此,您必须在具有关联 IPv6 CIDR 块的 VPC 和子网中启动实例。IPv6 地址从子网范围分配到主网络接口 (eth0)。

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

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

  2. 选择 Launch Instance

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

    注意

    选择支持 IPv6 地址的实例类型。

  4. Configure Instance Details 页上,从 Network 中选择 VPC,从 Subnet 中选择子网。对于 Auto-assign IPv6 IP,选择 Enable

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

或者,如果您希望在启动期间将子网范围内的特定 IPv6 地址分配给实例,则您可以将此地址分配到实例的主网络接口。

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

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

  2. 选择 Launch Instance

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

    注意

    选择支持 IPv6 地址的实例类型。

  4. Configure Instance Details 页上,从 Network 中选择 VPC,从 Subnet 中选择子网。

  5. 转到 Network interfaces 部分。对于 eth0 网络接口,在 IPv6 IPs 下选择 Add IP

  6. 输入子网范围内的 IPv6 地址。

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

有关在启动期间向实例分配多个 IPv6 地址的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的使用多个 IPv6 地址

向实例分配 IPv6 地址

如果您的实例位于具有关联 IPv6 CIDR 块的 VPC 和子网中,您可以使用 Amazon EC2 控制台从子网范围向您的实例分配 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

或者,您也可以向网络接口分配 IPv6 地址。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)弹性网络接口 主题中的分配 IPv6 地址

取消分配已分配给实例的 IPv6 地址

如果您的实例不再需要 IPv6 地址,则您可以使用 Amazon EC2 控制台取消其与实例的关联。

取消 IPv6 地址与实例的关联

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

  2. 在导航窗格中,选择 Instances,然后选择您的实例。

  3. 依次选择 ActionsManage IP Addresses

  4. IPv6 Addresses 下方,为 IPv6 地址选择 Unassign

  5. 选择 Save

或者,您也可以取消 IPv6 地址与网络接口的关联。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)弹性网络接口 主题中的取消分配 IPv6 地址

API 和命令概览

您可以使用命令行或 API 执行此页面上所说明的任务。有关命令行界面以及可用 API 列表的更多信息,请参阅 访问 Amazon VPC

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

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

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

在启动期间分配 IPv6 地址

  • 使用 run-instances 命令及 --ipv6-addresses 选项。(AWS CLI)

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

修改子网的 IP 寻址行为

向网络接口分配 IPv6 地址

取消分配已分配给网络接口的 IPv6 地址