一、背景
刚申请的ECS机器可以访问内网,却无法访问外网。
bash
curl: (7) Failed to connect to xx.xxx.com port 443: Connection timed out

经测试,ping 百度也不通。
因为新创建的阿里云 ECS 实例默认没有开启公网访问能力导致的。
本文涉及到的阿里云几个组件:
- NAT网关
- 弹性公网IP
- 资源组
- ECS
二、总体架构

目标:
资源组B是新建的一套环境,需要与原资源组A进行隔离并区分。
所以,我们将新建NAT和弹性公网IP,然后指向资源组B。
但是,我们第一次新建NAT的时候,误选择了资源组A,而非资源组B。
需要注意的是,在创建弹性公网IP的时候,别选错了资源组。
三、NAT网关
NAT网关起什么作用?
多台内网服务器只需主动访问外网,不想每台都买 EIP。
为整个 VPC/交换机内的多台内网 ECS 提供公网访问。
一般地,它会绑定 EIP 才能上网。
| 属性 | 说明 |
|---|---|
| 本质 | 阿里云托管的网关设备,有公网出口 |
| 需要 EIP | ✅ 必须绑定 EIP 才能上网(或共享带宽包) |
| 作用 | 为整个 VPC/交换机内的多台内网 ECS 提供公网访问 |
| 使用场景 | 多台内网服务器只需主动访问外网,不想每台都买 EIP |

NAT 网关不是 VPN:它只解决"内网访问外网",不解决"外网访问内网"。
1、新建NAT

选择对应的资源组和弹性公网IP。
前文也说了,因为我们初期新建NAT的时候,误选择了资源组,所以需要额外配置SANT。
而弹性公网IP,见本文的第三部分。
NAT 网关本身不能独立上网,它必须绑定 EIP 或共享带宽包,然后通过 SNAT 规则把内网 ECS 的流量"代理"出去。
下面看一看SNAT是如何配置的。
2、SNAT
通过SNAT为专有网络内无公网IP的ECS实例提供访问互联网的代理服务。
- SNAT = 内网出站的"护照",没有它,内网 ECS 的出网包在互联网上是"黑户",会被丢弃。
把内网 ECS 的私网 IP 转换为 NAT 网关的公网 IP(EIP)。
SNAT依赖 NAT 网关存在,本身不是独立产品。
| 属性 | 说明 |
|---|---|
| 本质 | NAT 网关内部的一种转换规则/功能 |
| 依赖关系 | 依赖 NAT 网关存在,本身不是独立产品 |
| 作用 | 把内网 ECS 的私网 IP 转换为 NAT 网关的公网 IP(EIP) |
| 配置位置 | 在 NAT 网关控制台创建 SNAT 条目 |


| 功能 | 全称 | 方向 | 作用 | 是否必须 |
|---|---|---|---|---|
| SNAT | Source NAT | 内网 → 外网 | 让内网实例主动访问互联网 | ✅ 必须(要上网的话) |
| DNAT | Destination NAT | 外网 → 内网 | 让外网访问内网特定端口(如 SSH、Web) | ❌ 可选 |
四、弹性公网IP
| 属性 | 说明 |
|---|---|
| 本质 | 独立的公网 IP 资源,可绑定/解绑 |
| 绑定对象 | 单个 ECS、SLB、NAT 网关、ENI 网卡 |
| 特点 | 灵活漂移,ECS 挂了可以绑到另一台 |
| 使用场景 | 需要被外网直接访问,或单台服务器上网 |



五、资源组

六、ECS

七、 总结
| 概念 | 一句话定位 |
|---|---|
| EIP | 公网地址的"手机号",谁绑定谁就能上网/被访问 |
| NAT 网关 | 内网 ECS 的"共享路由器",必须插一张 EIP 的"SIM 卡"才能工作 |
| SNAT | NAT 网关内部的"拨号规则",告诉它怎么帮内网 ECS "代拨"上网 |