NAT 网关是什么
NAT 网关是 VPC 级的公网网关,为内网实例提供共享公网出口:实例不绑公网 IP 也能通过 SNAT 主动访问公网,对外表现为 NAT 上绑定的 EIP 地址;也可以配置 DNAT 把公网端口映射到内网实例,实现隐藏源站的入向访问。它在指定交换机(可用区)内创建,由平台托管并自动处理节点故障切换。
基本信息
| 定位 | VPC 级公网网关:共享出口(SNAT)+ 端口映射(DNAT) |
|---|---|
| SNAT | 内网实例主动访问公网,自动完成源地址转换 |
| DNAT | 公网访问内网:EIP 公网端口映射到实例私网端口 |
| 部署形态 | 部署在指定交换机与可用区,规格决定可用带宽与连接数 |
| 计费 | 按规格(含固定规格费)加公网带宽或流量费用 |
| 高可用 | 平台托管,多可用区部署形态可提供更强容灾能力 |
典型使用场景
- 多台应用服务器需要访问第三方接口、拉取依赖包或上报监控数据,统一走 NAT 出口
- 给对端提供固定出口 IP 白名单:把 SNAT 绑定的 EIP 告知对方即可
- 内网实例完全不绑公网 IP,减少暴露面同时保留出网能力
- 用 DNAT 把公网端口映射到内网自建服务,避免实例直接暴露
- 与负载均衡分工:入口用 SLB,出口用 NAT,两侧互不干扰
典型网络结构
典型网络结构
VPC 内实例(无公网 IP)
→ 路由表 0.0.0.0/0 指向 NAT 网关
→ NAT 网关(绑定 1~n 个 EIP)
→ 公网
实例内自检:curl -s https://ifconfig.me # 显示 NAT 绑定的 EIPSNAT 与 DNAT 对比
| 维度 | SNAT | DNAT |
|---|---|---|
| 方向 | 内网主动出公网 | 公网访问内网 |
| 匹配依据 | 来源网段(子网或自定义 CIDR) | EIP 上的公网端口 |
| 是否必须 | 出网必需,且需要路由配合 | 仅需被外部访问时配置 |
| 典型问题 | 新子网未纳入覆盖范围导致不能出网 | 公网端口被占用导致创建失败 |
NAT 网关需要两处配置同时正确:所在子网的路由表把 0.0.0.0/0 指向 NAT 网关,以及 NAT 上存在覆盖该来源的 SNAT 条目。只做其中一项,实例都不会出网。
自建 NAT(用一台带公网 IP 的实例做转发)虽然成本低,但需要自行处理高可用、带宽上限与单点故障,生产环境更多使用托管型 NAT 网关。
规格与选型要点
- 按峰值出网带宽选规格,打满后表现为丢包而不是排队等速
- 按最大并发连接数与每秒新建连接数核对规格,长连接业务尤其要看连接数
- 核心业务选择支持多可用区容灾的部署形态,单可用区形态本身是一个故障域
- 需要给多个对端提供白名单时可绑定多个 EIP,出口地址来源更充裕
- 跨可用区流量可能产生额外费用,部署前查清计费说明
查看 NAT 网关与 SNAT 条目
查看 NAT 网关与 SNAT 条目
aliyun vpc DescribeNatGateways --RegionId cn-hangzhou --VpcId vpc-xxxxxxxx
# 查看 SNAT 条目覆盖的网段与绑定的 EIP
aliyun vpc DescribeSnatTableEntries --RegionId cn-hangzhou \
--NatGatewayId ngw-xxxxxxxxNAT 网关是共享出口,任何一台实例的异常出网流量都会占用整体带宽;排查「网络整体变慢」时先看 NAT 的出方向带宽与连接数曲线。
常见现象与原因
| 现象 | 更可能的原因 |
|---|---|
| 内网实例无法出公网 | 子网路由未指向 NAT 网关,或 SNAT 未覆盖该来源网段 |
| 出网时快时慢、偶发丢包 | NAT 规格带宽被打满,超限表现为丢包而非排队 |
| 外部访问映射端口超时 | DNAT 条目缺失,或安全组未放行该端口 |
| 对端看到陌生来源地址 | NAT 绑定了多个 EIP,出口地址按条目分配 |