> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/welcome/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/welcome/cn/elastic-compute/networking/01-overview-3/03-snat.md).

# 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 流程](https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-d75b9f92a5e5aabbf1119cf4ea4d974a9d9ef406%2Fsnat-flow.svg?alt=media)

## 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）提供独立的出口地址。
