虚拟私有云(VPC)概览
了解 VPC 的 CIDR 划分、NAT 网关、NACL 与堡垒主机等核心概念
什么是 VPC?
VPC 是 AWS 云中一个逻辑隔离的区域,在这里您可以完全控制虚拟网络环境,包括选择 IP 地址范围等。
可以将其理解为云中的一个虚拟数据中心。
此外,您可以在企业数据中心与您的 VPC 之间创建硬件虚拟专用网络(VPN)连接,并将 AWS 云作为企业数据中心的延伸使用。
您可以通过互联网网关或虚拟私有网关连接到 VPC。

CIDR
CIDR 是一种用于描述 IP 地址块的表示法,在各种网络配置中广泛使用。
在 IPv4 中,地址由 32 位组成,以十进制形式表示为四个 8 位字节。每个 8 位字节的取值范围是 0 到 255,因为 2^8(2 的 8 次方)等于 256,且计数从零开始。
IPv6 地址的表示方式不同,因为其长度远超 IPv4 地址。IPv6 地址长度为 128 位,即 16 个 8 位字节。
斜杠后的数字表示地址块大小:
- /8:最高地址范围
- /12
- /16
- /28:最低地址范围
默认软限制为每个区域、每个账户最多创建 5 个 VPC。
在 VPC 中,您可以:
- 将实例启动到子网中
- 为每个子网分配自定义 IP 地址范围
- 配置子网之间的路由表
- 创建互联网网关并附加到您的 VPC
- 创建网络访问控制列表(NACL)以增强安全性
- 使用实例安全组
- 为子网配置网络访问控制列表(ACL)
NAT 网关
NAT 网关是一种网络地址转换(NAT)服务。您可以使用 NAT 网关,使私有子网中的实例能够连接到 VPC 外部的服务,但外部服务无法主动发起对这些实例的连接。
创建 NAT 网关时,需指定以下两种连接类型之一:
公共型(默认):私有子网中的实例可通过公共 NAT 网关连接互联网,但无法接收来自互联网的未请求入站连接。您需要在公共子网中创建公共 NAT 网关,并在创建时关联一个弹性 IP 地址。您将流量从 NAT 网关路由至 VPC 的互联网网关。或者,您也可以使用公共 NAT 网关连接到其他 VPC 或本地网络。此时,您通过传输网关或虚拟私有网关将流量从 NAT 网关路由出去。
私有型:私有子网中的实例可通过私有 NAT 网关连接到其他 VPC 或本地网络。您可将流量从 NAT 网关通过传输网关或虚拟私有网关路由出去。不能为私有 NAT 网关关联弹性 IP 地址。虽然可以将互联网网关附加到带有私有 NAT 网关的 VPC,但如果将私有 NAT 网关的流量路由至互联网网关,该网关会丢弃此流量。
NAT 网关会将实例的源 IP 地址替换为其自身的 IP 地址。对于公共 NAT 网关,该地址为 NAT 网关的弹性 IP;对于私有 NAT 网关,该地址为 NAT 网关的私有 IP。当发送响应流量回实例时,NAT 设备会将地址转换回原始源 IP 地址。
NAT 网关是托管服务,意味着云服务商负责管理该服务。
您需要在每个可用区中创建一个 NAT 网关。为了实现跨可用区通信,应为每个可用区的 NAT 网关配置相应的路由表。
您应使用网络 ACL 来控制流向和来自 NAT 网关所在子网的流量。
网络访问控制列表(NACL)
在下图所示场景中:
- 一个实例位于私有子网
- 一个实例位于公共子网
- 存在一个 NAT 网关
- 有两个不同的安全组,每个子网各一个
网络 ACL 默认允许所有流量进出。
通用建议:通常一个子网只能关联一个 NACL,不能将一个子网关联到多个 NACL。
但一个网络 ACL 可以关联多个子网。

当用户创建自定义 NACL 时,它会默认拒绝所有入站和出站流量,直到您添加允许规则为止。
- 您 VPC 中的每个子网都必须关联一个网络 ACL。
- 每个 VPC 默认自带一个默认网络 ACL,该 ACL 默认允许所有入站和出站流量。
- 网络 ACL 包含一个编号规则列表,按编号顺序依次评估,从最低编号开始。
- 网络 ACL 是无状态的,这意味着允许的入站流量的响应必须符合出站规则,反之亦然。
- 网络 ACL 有独立的入站和出站规则,每条规则可以允许或拒绝流量。
VPC 流日志
VPC 流日志功能可捕获进入和离开 VPC 网络接口的 IP 流量信息。
流日志数据存储在 Amazon CloudWatch Logs 中。
堡垒主机
什么是堡垒主机?我是否需要它?
堡垒主机是部署在公共子网中的实例,通常通过 SSH 或 RDP 进行访问。建立远程连接后,堡垒主机充当“跳板”服务器,允许您通过 SSH 或 RDP 登录到 VPC 内更深层的私有子网中的其他实例。
通过正确配置安全组和网络 ACL(NACL),堡垒主机实际上成为通过互联网访问私有实例的桥梁。
您可能会问:我的环境中是否需要堡垒主机?如果您需要通过公共互联网远程连接私有实例,答案是肯定的!
下图展示了用户如何通过堡垒主机连接到私有子网中的资源。

以下是为 AWS 基础设施创建堡垒主机的基本步骤:
- 像创建普通实例一样启动 EC2 实例。
- 根据需要进行操作系统加固。
- 设置适当的安全组(SG)。
- 实现 SSH 代理转发(Linux 连接)或远程桌面网关(Windows 连接)。
- 在您使用的每个可用区中部署一个 AWS 堡垒主机。
位于公共子网中的 NAT 实例用于让私有子网中的实例访问互联网。
跳板机
这允许您先通过 SSH 或 RDP 登录堡垒主机,然后从堡垒主机发起对私有子网中实例的私有连接。
堡垒主机经过加固处理,是管理私有子网中所有 EC2 实例的唯一途径。
服务网关
服务网关使私有子网中的实例能够访问公共端点,而无需实际经过互联网。
