使用互联网网关连接到互联网 - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用互联网网关连接到互联网

Internet 网关是一种横向扩展、冗余且高度可用的 VPC 组件,支持在 VPC 和 Internet 之间进行通信。它支持 IPv4 和 IPv6 流量。它不会对您的网络流量造成可用性风险或带宽限制。

借助互联网网关,公有子网中具有公有 IPv4 地址或 IPv6 地址的资源(例如 EC2 实例)可以连接到互联网。同样,互联网上的资源也可以使用公有 IPv4 地址或 IPv6 地址发起到子网中的资源的连接。例如,您可以通过互联网网关,使用本地电脑连接到 Amazon 中的 EC2 实例。

互联网网关为您的 VPC 路由表中可通过互联网路由的流量提供目标。对于使用 IPv4 的通信,互联网网关还会执行网络地址转换 (NAT)。对于使用 IPv6 的通信,不需要 NAT,因为 IPv6 地址是公有的。有关更多信息,请参阅 IP 地址和 NAT

建立互联网网关并不需要缴纳额外的费用。

启用 Internet 访问

要为使用互联网网关的 VPC 的子网中的实例启用互联网访问,必须执行以下操作。

  • 创建 Internet 网关并将其附加到 VPC。

  • 将路由添加到您子网的路由表,该路由表将 Internet 范围的流量定向到互联网网关。

  • 确保您的子网中的实例具有公有 IPv4 地址或 IPv6 地址。

  • 确保您的网络访问控制列表和安全组规则允许所需互联网流量在您的实例中流入和流出。

公有子网和私有子网

如果子网的关联路由表包含指向互联网网关的路由,则该子网称为公有子网。如果子网的关联路由表没有指向互联网网关的路由,则该子网称为私有子网

在公有子网路由表中,您可以将互联网网关的路由指定为路由表未明确知晓的所有目的地(对于 IPv4 为 0.0.0.0/0,对于 IPv6 为 ::/0)。或者,您也可以将路由范围设定为一个较小的 IP 地址范围,例如,公司在Amazon以外的公有终端节点的公有 IPv4 地址,或 VPC 以外的其他 Amazon EC2 实例的弹性 IP 地址。

IP 地址和 NAT

要为 IPv4 启用互联网通信,实例必须具有公有 IPv4 地址。您可以将 VPC 配置为自动向实例分配公有 IPv4 地址,也可以为实例分配弹性 IP 地址。实例只了解 VPC 和子网内定义的私有 (内部) IP 地址空间。Internet 网关以逻辑方式代表实例提供一对一 NAT,这样一来,当流量离开 VPC 子网并流向 Internet 时,回复地址字段将设置为实例的公有 IPv4 地址或弹性 IP 地址,而不是私有 IP 地址。相反,指定发往实例的公有 IPv4 地址或弹性 IP 地址的流量会先将其目标地址转换为实例的私有 IPv4 地址,然后再传输到 VPC。

要为 IPv6 启用 Internet 通信,VPC 和子网必须具有关联的 IPv6 CIDR 块,并且必须为实例分配此子网范围内的 IPv6 地址。IPv6 地址是全球唯一的,因此默认为公有。

在下图中,可用区 A 中的子网是公有子网。此子网的路由表具有将所有互联网绑定 IPv4 流量发送到互联网网关的路由。公有子网中的实例必须具有公有 IP 地址或弹性 IP 地址,才能通过互联网网关与互联网进行通信。为了进行比较,可用区 B 中的子网是私有子网,因为其路由表没有通往互联网网关的路由。私有子网中的实例无法通过互联网网关与互联网进行通信,即使它们具有公有 IP 地址也是如此。


                使用 Internet 网关

要为您的实例提供 Internet 访问,而不为其分配公有 IP 地址,您可以改用 NAT 设备。NAT 设备允许私有子网中的实例连接到 Internet,但阻止 Internet 上的主机发起与实例的连接。有关更多信息,请参阅 使用 NAT 设备连接到互联网或其他网络

对默认和非默认 VPC 的 Internet 访问

下表概述了 VPC 是否自动提供通过 IPv4 或 IPv6 进行 Internet 访问所需的组件。

组件 默认 VPC 非默认 VPC
Internet 网关
包含将 IPv4 流量路由到 Internet 网关的路由的路由表 (0.0.0.0/0)
包含将 IPv6 流量路由到 Internet 网关的路由的路由表 (::/0)
公有 IPv4 地址自动分配到在子网中启动的实例 是 (默认子网) 否 (非默认子网)
IPv6 地址自动分配到在子网中启动的实例 否 (默认子网) 否 (非默认子网)

有关默认 VPC 的更多信息,请参阅默认 VPC。有关如何创建 VPC 的更多信息,请参阅 创建 VPC

有关您的 VPC 中的 IP 寻址以及控制如何为实例分配公有 IPv4 或 IPv6 地址的更多信息,请参阅IP 寻址

当您在 VPC 中添加新子网时,您必须为子网设置您需要的路由和安全性。

从 VPC 中的子网访问互联网

下面介绍如何使用互联网网关从 VPC 中的子网访问互联网。要删除互联网访问权限,您可以将互联网网关与 VPC 分离,然后将其删除。

创建子网

为您的 VPC 添加子网
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets (子网)Create subnet (创建子网)

  3. 根据需要指定子网详细信息。

    • Name tag:可以选择为子网提供一个名称。这样做可创建具有 Name 键以及您指定的值的标签。

    • VPC:选择要为哪个 VPC 创建子网。

    • Availability Zone (可用区):可以选择您的子网将位于的可用区或本地区域,也可以保留默认的 No Preference (无首选项),让Amazon为您选择可用区。

      有关支持 Local Zones 的区域的信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的可用区域

    • IPv4 CIDR block:为您的子网指定 IPv4 CIDR 块,如 10.0.1.0/24。有关更多信息,请参阅 IPv4 VPC CIDR 块

    • IPv6 CIDR block:(可选) 如果您的 VPC 已关联 IPv6 CIDR 块,请选择 Specify a custom IPv6 CIDR。指定子网的十六进制对值或保留默认值。

  4. 选择 Create(创建)。

有关更多信息,请参阅VPC 的子网

创建并连接到互联网网关

在创建 Internet 网关后,将其附加到 VPC。

创建 Internet 网关并将其附加到 VPC
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Internet Gateways(互联网网关),然后选择 Create internet gateway (创建互联网网关)。

  3. (可选)命名您的互联网网关。

  4. (可选)添加或删除标签。

    [添加标签] 选择 Add tag (添加标签),然后执行以下操作:

    • 对于 Key(键),输入键名称。

    • 对于 Value(值),输入键值。

    [删除标签] 选择标签的“键”和“值”右侧的删除

  5. 选择创建互联网网关

  6. 选择刚刚创建的 Internet 网关,然后选择 Actions, Attach to VPC (操作,附加到 VPC)

  7. 从列表中选择 VPC,然后选择连接互联网网关

创建自定义路由表

当您创建子网时,我们会自动将其与 VPC 的主路由表关联。默认情况下,主路由表不包含至 Internet 网关的路由。以下过程创建一个自定义路由表 (其中一个路由将目标为 VPC 外的流量发送到 Internet 网关) 并将此路由表与子网相关联。

创建自定义路由表
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Route Tables (路由表),然后选择 Create Route Table (创建路由表)

  3. Create Route Table (创建路由表) 对话框中,可以选择命名您的路由表,选择您的 VPC,然后选择 Yes, Create (是,创建)

  4. 选择您刚刚创建的自定义路由表。详细信息窗格中会显示选项卡,以供您使用其路径、关联和路线传播。

  5. Routes (路由) 选项卡中,依次选择 Edit (编辑)Add another route (添加其他路由),然后根据需要添加以下路由。完成后,选择 Save changes (保存更改)

    • 对于 IPv4 流量,在 Destination (目的地) 框中指定 0.0.0.0/0,然后在 Target (目标) 列表中选择 Internet 网关 ID。

    • 对于 IPv6 流量,在 Destination (目的地) 框中指定 ::/0,然后在 Target (目标) 列表中选择 Internet 网关 ID。

  6. Subnet associations (子网关联) 选项卡上,选择 Edit subnet associations (编辑子网关联),选中子网对应的复选框,然后选择 Save associations (保存关联)

有关更多信息,请参阅 配置路由表

为 Internet 访问创建安全组

默认情况下,VPC 安全组允许所有出站流量。您可以创建新的安全组,并添加允许来自 Internet 的入站流量的规则。然后,您可以将安全组与公有子网中的实例关联。

创建安全组并将其与实例关联
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups(安全组),然后选择 Create security group(创建安全组)。

  3. 输入安全组的名称和描述。

  4. 对于 VPC,选择您的 VPC。

  5. 对于 Inbound Rules(入站规则),选择 Add Rule(添加规则),然后填写所需信息。例如,从 Type(类型)中选择 HTTPHTTPS,然后对于 Source(源)中输入 0.0.0.0/0(对于 IPv4 流量),或者 ::/0(对于 IPv6 流量)。

  6. 选择Create security group(创建安全组)。

  7. 在导航窗格中,选择实例

  8. 选择实例,依次选择 Actions(操作)、Security(安全)和 Change security groups(更改安全组)。

  9. 对于 Associated security groups(关联的安全组),选择一个现有安全组,然后选择 Add security group(添加安全组)。要删除已关联的安全组,请选择 Remove(删除)。完成更改后,选择 Save(保存)。

有关更多信息,请参阅使用安全组控制到资源的流量

为实例分配弹性 IP 地址

在子网中启动实例之后,如果希望它能够通过 IPv4 连接 Internet,则必须为其指定弹性 IP 地址。

注意

如果在启动过程中向实例分配了公有 IPv4 地址,则实例可从 Internet 进行访问,无需向它分配弹性 IP 地址。想要了解更多有关您实例的 IP 寻址的信息,请参阅 IP 寻址

使用控制台分配弹性 IP 地址并将其分配给一个实例
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Elastic IPs

  3. 选择 Allocate new address

  4. 选择 Allocate

    注意

    如果您的账户支持 EC2-Classic,请首先选择 VPC

  5. 从列表中选择弹性 IP 地址,选择 Actions,然后选择 Associate address

  6. 选择 InstanceNetwork interface,然后选择实例 ID 或网络接口 ID。选择要与弹性 IP 地址关联的私有 IP 地址,然后选择 Associate

有关更多信息,请参阅 将弹性 IP 地址关联到 VPC 中的资源

将互联网网关与您的 VPC 断开

如果不再需要通过 Internet 访问在非默认 VPC 中启动的实例,则可将 Internet 网关与 VPC 分离。如果 VPC 的某些资源具有关联的公有 IP 地址或弹性 IP 地址,则无法分离 Internet 网关。

分离 Internet 网关
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Elastic IPs,然后选择弹性 IP 地址。

  3. 选择 ActionsDisassociate address。选择 Disassociate address

  4. 在导航窗格中,选择 Internet gateways(互联网网关)。

  5. 选择相应的 Internet 网关,然后选择 Actions, Detach from VPC (操作,与 VPC 分离)

  6. 与 VPC 分离对话框中,选择分离互联网网关

删除 Internet 网关

如果不再需要 Internet 网关,可将其删除。无法删除仍附加到 VPC 的 Internet 网关。

删除 Internet 网关
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Internet gateways(互联网网关)。

  3. 选择相应的 Internet 网关,然后依次选择 Actions (操作)Delete internet gateway (删除 Internet 网关)

  4. 删除互联网网关对话框中输入 delete,并选择删除互联网网关

API 和命令概览

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

创建 Internet 网关
将 Internet 网关附加到 VPC
描述 Internet 网关
将 Internet 网关与 VPC 分离
删除 Internet 网关