For the complete documentation index, see llms.txt. This page is also available as Markdown.

SNAT — 出站访问

SNAT(源地址转换)使 VPC 中的实例无需拥有公网 IP 地址即可访问互联网。当出站流量离开覆盖子网时,NAT 网关会在转发数据包之前将私有源 IP 替换为其弹性 IP 之一。返回流量会自动传递回发起连接的原始实例。

典型使用场景

安装软件包和依赖项。 私有子网中的实例需要从软件包管理器(apt、yum、pip、npm)或容器镜像仓库拉取内容。SNAT 为它们提供这种连通性,同时不将其暴露于入站流量。

调用外部 API。 调用第三方 API、支付处理商或数据提供商的后端服务需要出站互联网访问。通过 SNAT,这些访问会通过一组受控的 EIP 路由出站,使 IP 白名单管理变得简单易行。

软件和安全更新。 任何需要从公共镜像源接收 OS 或软件更新的实例都需要出站互联网连通性。SNAT 以简洁的方式处理子网中所有实例的这一需求,无需为每个实例单独分配 EIP。

批处理和数据管道任务。 从外部来源拉取数据或将结果推送到云存储(S3、GCS 等)的工作节点,可受益于 SNAT 提供的高吞吐量共享 EIP 模型。

工作原理

当 SNAT 覆盖子网中的实例向互联网目标发送数据包时:

  1. 数据包到达 VPC 路由表。如果源子网由 NAT 网关覆盖,默认路由(0.0.0.0/0)将指向该网关。

  2. 网关检查其 SNAT 条目。如果源子网或源 CIDR 与某条条目匹配,它将私有源 IP 替换为该条目中某个 EIP,分配临时端口,并记录映射关系。

  3. 数据包以公网源地址发出,送往互联网。

  4. 当远程服务器回复时,网关将回复与连接记录匹配,并将其传递给原始私有实例。

SNAT 流程

SNAT 条目

SNAT 条目定义了哪些私有来源通过网关进行出站流量,以及哪个弹性 IPv4 地址承载这些流量。Console 的 NAT 规则标签页列出每个条目及以下字段:

字段
说明

SNAT 条目 ID

系统分配的条目标识符。

源子网

单个子网、多个子网或 all(全部)。

源 CIDR

一个或多个源地址范围。仅当路由到网关的所有来源都应符合 SNAT 条件时,才使用 0.0.0.0/0

弹性 IPv4 地址

用作匹配流量出站源地址的一个或多个 EIP。

您可以在同一网关上创建多个 SNAT 条目。源范围不得以会导致 SNAT 行为模糊的方式重叠;重叠的条目将被拒绝。

通过多个 EIP 扩展出口容量

平台支持每个 EIP 大量的并发连接,因此单个 EIP 可以轻松处理大多数工作负载。对于水平扩展或工作负载隔离,您可以向网关绑定额外的 EIP 并将其包含在 SNAT 条目中,或将不同来源拆分到多个互不重叠的条目中。

在多个 EIP 间分散流量的原因:

  • 在网关上提供更多同时出站连接数量。

  • 为需要不同 IP 白名单的不同环境(例如生产环境与预发布环境的 CIDR)提供独立的出口地址。

最后更新于