阿里云VPC NAT网关配置完全指南:从零搭建公网访问架构

简介: 本文系统讲解阿里云VPC中NAT网关的配置方法与核心原理。首先介绍NAT网关的产品定位与两种类型(公网NAT网关与VPC NAT网关)的区别,然后逐步拆解创建公网NAT网关、绑定弹性公网IP、配置SNAT条目实现VPC内无公网IP的ECS访问互联网、配置DNAT条目将内网服务暴露到公网的完整操作流程。深入分析路由表与NAT网关的协同工作机制、SNAT与DNAT的地址转换原理、多可用区高可用部署方案。结合阿里云CLI和Terraform提供自动化配置代码示例,涵盖按量计费模式下的成本构成、配额限制、常见故障排查方法,并给出企业级最佳实践建议。

1. NAT网关概述与产品选型

在阿里云专有网络VPC中,云服务器ECS实例默认只有私网IP地址,无法直接访问公网,也无法被公网直接访问。为了实现VPC内资源与公网的互通,阿里云提供了NAT网关(NAT Gateway)这款全托管的网络地址转换服务。NAT网关通过转换和隐藏云服务的真实地址,既实现了公网访问能力,又避免了内网地址直接对外暴露,有效提升了网络安全性。

阿里云NAT网关分为两种类型:公网NAT网关VPC NAT网关。公网NAT网关可以绑定弹性公网IP(EIP)实现公网访问,适用于VPC内ECS实例访问互联网或对外提供服务的场景。VPC NAT网关不支持绑定EIP,主要用于私网地址转换,解决VPC之间网段冲突时的互访问题,或满足金融等行业使用指定私网IP访问本地IDC的合规诉求。本文聚焦公网NAT网关的配置,帮助读者掌握VPC内资源通过NAT网关实现公网访问的核心技能。

需要先登录阿里云控制台,点击:阿里云控制台

2. 公网NAT网关的核心功能

公网NAT网关提供两个核心功能:SNAT(源网络地址转换)DNAT(目的网络地址转换)

SNAT功能让VPC内多个无公网IP的ECS实例共享一个或多个EIP访问公网。当ECS实例主动发起对外访问时,NAT网关将数据包的源IP地址(私网IP)转换为NAT网关绑定的EIP,公网目标服务器看到的请求来源是EIP而非ECS的私网IP。响应数据返回时,NAT网关根据会话映射表将目的IP还原为ECS的私网IP,完成整个通信过程。SNAT的核心价值在于节省公网IP资源——无需为每台ECS单独分配EIP,同时隐藏了内网拓扑结构,提升了安全性。

DNAT功能则相反,它允许公网用户通过NAT网关绑定的EIP和指定端口访问VPC内ECS实例提供的服务。DNAT支持端口映射和IP映射两种模式。端口映射将公网IP的特定端口映射到内网ECS的指定端口,适合多服务共用同一个EIP的场景;IP映射则将整个公网IP映射到一台ECS,适合需要完整IP级访问的场景。

3. 配置前的准备工作

在开始配置NAT网关之前,需要完成以下准备工作。

3.1 创建VPC和交换机

首先确认已创建VPC和交换机。如果尚未创建,需先在阿里云VPC控制台完成VPC及交换机的创建。建议VPC网段选择RFC 1918规定的私有地址段,如192.168.0.0/16、172.16.0.0/12或10.0.0.0/8,避免与本地数据中心或其他云环境网段冲突。交换机应部署在需要访问公网的ECS所在的可用区。

3.2 准备弹性公网IP(EIP)

NAT网关必须绑定至少一个EIP才能正常工作。如果尚未创建EIP,可以在创建NAT网关时选择“新购弹性公网IP”,系统会自动完成创建与绑定。EIP是独立的公网IP资源,可以单独创建与持有、动态绑定与解绑,比ECS固定公网IP更加灵活。

3.3 创建服务关联角色

首次创建NAT网关时,需要创建服务关联角色。系统会提示您完成该操作,单击“创建关联角色”即可自动完成授权。

4. 创建公网NAT网关

完成准备工作后,进入公网NAT网关的创建流程。

4.1 控制台创建步骤

登录专有网络管理控制台,在左侧导航栏中选择“NAT网关”>“公网NAT网关”。单击“创建公网NAT网关”。配置以下关键参数:

  • 付费类型:选择按量付费。NAT网关仅支持后付费模式,计费方式为按使用量计费。
  • 所属地域:选择与您的ECS实例相同的地域。
  • 所属专有网络:选择步骤3.1中创建的VPC。
  • 关联交换机:选择VPC内的一个交换机。NAT网关将部署在该交换机中,创建成功后无法修改。
  • 容灾类型:支持跨可用区容灾和单可用区容灾两种模式。跨可用区容灾模式下NAT网关跨可用区冗余部署,单可用区故障时自动切换;单可用区容灾模式部署在单一可用区内。
  • 弹性公网IP:选择“新购弹性公网IP”自动创建并绑定EIP,或选择“选择已有”绑定已有的EIP。

勾选服务协议,单击“立即购买”完成支付。

4.2 通过阿里云CLI创建

对于需要自动化运维的场景,可以使用阿里云CLI创建NAT网关。以下为示例命令:

# 创建公网NAT网关
aliyun vpc CreateNatGateway \
  --RegionId cn-hangzhou \
  --VpcId vpc-xxxxxxxx \
  --VSwitchId vsw-xxxxxxxx \
  --NatGatewayName my-nat-gateway \
  --NatType Enhanced \
  --InternetChargeType PayByLcu

创建完成后,需要绑定EIP:

# 绑定EIP到NAT网关
aliyun vpc AssociateEipAddress \
  --AllocationId eip-xxxxxxxx \
  --InstanceId ngw-xxxxxxxx \
  --InstanceType Nat

4.3 通过Terraform创建

使用Terraform可以实现基础设施即代码(IaC),便于版本控制和团队协作。以下为Terraform配置示例:

resource "alicloud_vpc" "default" {
  vpc_name   = "my-vpc"
  cidr_block = "10.0.0.0/16"
}
resource "alicloud_vswitch" "default" {
  vpc_id     = alicloud_vpc.default.id
  cidr_block = "10.0.1.0/24"
  zone_id    = "cn-hangzhou-g"
}
resource "alicloud_eip" "default" {
  bandwidth = "100"
}
resource "alicloud_nat_gateway" "default" {
  vpc_id           = alicloud_vpc.default.id
  vswitch_id       = alicloud_vswitch.default.id
  nat_gateway_name = "my-nat-gateway"
  nat_type         = "Enhanced"
}
resource "alicloud_eip_association" "default" {
  allocation_id = alicloud_eip.default.id
  instance_id   = alicloud_nat_gateway.default.id
}

5. 配置SNAT条目实现ECS访问公网

创建NAT网关并绑定EIP后,需要配置SNAT条目才能让VPC内的ECS实例通过NAT网关访问公网。

5.1 控制台配置SNAT

在NAT网关管理控制台,点击目标NAT网关实例ID进入详情页,切换到“SNAT管理”页签,点击“创建SNAT条目”。创建SNAT条目时需要配置以下参数:

  • SNAT条目粒度:支持VPC粒度、交换机粒度和ECS粒度三种。VPC粒度为整个VPC内所有资源提供SNAT能力;交换机粒度仅为指定交换机内的ECS提供SNAT;ECS粒度(源网段掩码为/32)为单台ECS提供SNAT。
  • 选择交换机:当选择交换机粒度时,指定需要访问公网的交换机。
  • 源网段:当选择VPC粒度时,系统自动填充VPC的网段。
  • 选择弹性公网IP地址:选择已绑定到NAT网关的EIP。支持选择多个EIP实现出口IP的负载均衡。
  • 条目名称:输入便于识别的名称。

配置完成后,单击“确定”即可。

5.2 SNAT工作原理详解

以ECS实例(私网IP:192.168.1.100)访问公网为例,SNAT的工作流程如下:

  1. 路由转发:按照VPC路由表中指向NAT网关的路由规则,访问数据包被转发至公网NAT网关。
  2. 源地址转换:NAT网关接收到数据包后,根据SNAT规则配置将源IP地址192.168.1.100转换为NAT网关绑定的EIP。同时记录原始五元组(协议、源IP、源端口、目的IP、目的端口)与转换后的五元组(协议、EIP、公网源端口、目的IP、目的端口)的对应关系。
  3. 发往公网:经过地址转换后的数据包被发送至互联网,该请求的发起方为EIP,而非ECS实例的私网IP。
  4. 响应返回:当公网的目标服务器返回响应数据包时,按照会话映射表还原为原始的私网IP,从而转发回ECS实例。

5.3 验证SNAT功能

配置完成后,登录无公网IP的ECS实例,执行以下命令验证公网出口IP:

curl myip.ipip.net

若返回的公网出口IP与NAT网关SNAT条目中配置的EIP一致,说明ECS实例已通过NAT网关的SNAT功能成功访问互联网。

也可以使用ping命令测试网络连通性:

ping www.aliyun.com

如果能接收到回复报文,表示公网访问已配置成功。

6. 配置DNAT条目将内网服务暴露到公网

DNAT功能让公网用户能够通过NAT网关绑定的EIP访问VPC内ECS实例提供的服务。

6.1 控制台配置DNAT

在NAT网关实例详情页,切换到“DNAT管理”页签,点击“创建DNAT条目”。配置以下参数:

  • 公网IP地址:选择NAT网关绑定的EIP。
  • 公网端口:公网用户访问时使用的端口。
  • 私网IP地址:目标ECS实例的私网IP。
  • 私网端口:ECS实例上服务监听的端口。
  • 协议类型:TCP、UDP或任意协议。

6.2 DNAT的两种映射模式

DNAT支持两种映射模式:

  • 端口映射:将公网IP的特定端口映射到内网ECS的指定端口。例如将EIP的80端口映射到ECS的8080端口,适合多服务共用同一个EIP的场景。
  • IP映射:将整个公网IP映射到一台ECS,适合需要完整IP级访问的场景。

6.3 验证DNAT功能

配置DNAT条目后,从本地设备执行以下命令测试连通性:

ssh root@<公网IP> -p <公网端口>

若成功连接,说明已通过NAT网关的DNAT功能实现公网访问。需要注意的是,如果ECS实例本身绑定了EIP,外部用户无法通过DNAT条目访问该ECS实例,需要先解绑ECS实例的EIP。

7. 路由表与NAT网关的协同工作机制

路由表是NAT网关能够正常工作的关键基础设施。增强型公网NAT网关创建后,系统会在VPC的路由表中自动添加一条目标网段为0.0.0.0/0、下一跳为NAT网关的路由条目,用于将流量路由到NAT网关。

7.1 自动路由与手动路由

SNAT功能配置后是否生效,取决于VPC内访问公网的流量是否被正确路由到NAT网关。具体规则如下:

  • 自动设置:如果VPC系统路由表中无0.0.0.0/0路由,该VPC创建第一个公网NAT网关时,系统会自动添加此路由。
  • 手动设置:如果使用自定义路由表,或系统路由表中已存在0.0.0.0/0路由,需要手动添加或调整自定义路由条目。建议遵循最小权限原则,配置目标网段为访问的具体公网网段。

7.2 路由优先级

当多条路由的目标网段重叠时,遵循最长前缀匹配原则转发流量。例如,0.0.0.0/0和10.0.0.0/8两条路由中,访问10.0.0.1的流量会匹配10.0.0.0/8这条更精确的路由。

8. 高可用部署方案

对于生产环境,建议采用高可用部署方案以确保业务连续性。

8.1 跨可用区容灾

公网NAT网关支持跨可用区容灾部署模式。在该模式下,NAT网关跨可用区冗余部署,单可用区故障时自动容灾切换。适用于ECS等实例分布在多个可用区、需要共享同一NAT网关访问公网的场景。

8.2 多NAT网关部署

当VPC内需要多个NAT网关时,可以通过合理规划实现高可用。例如,在不同的可用区部署独立的NAT网关,为不同交换机提供公网访问能力。如果不需要多个NAT网关,建议删除未使用的NAT网关,并将所有交换机的SNAT条目添加到剩余的NAT网关中。

8.3 结合负载均衡实现高可用

将多台ECS实例添加到同一个负载均衡器(CLB)后端服务器组,配置CLB监听和转发规则,使用NAT网关的公网IP作为统一出入口。当ECS实例故障时,CLB自动屏蔽故障实例并将请求分发给正常运行的实例,保持业务高可用性。

9. 多VPC共用NAT网关

通过VPC对等连接可以实现多个VPC共用一个公网NAT网关。对等连接可以在两个VPC之间建立网络连接,实现私网互通。通过在两个VPC间创建对等连接并配置路由条目,然后在公网NAT网关配置SNAT条目,即可实现多个VPC通过同一个公网NAT网关访问公网。

10. 计费模式与成本优化

10.1 计费方式

公网NAT网关的付费类型仅为后付费,计费方式为按使用量计费。计费项包括实例费和容量单位CU费。计费周期为1小时,不足1小时按1小时计算。

10.2 按量计费的成本构成

  • 实例费:按NAT网关实例的保有时长计费。
  • CU费:按实际使用的容量单位(CU)计费。

跨可用区容灾模式的NAT网关仅支持按量付费,不支持包年包月。

11. 配额限制

使用NAT网关时需注意以下配额限制:

  • 每个VPC可创建的公网NAT网关数量有上限,具体配额可在阿里云控制台“配额管理”中查看。
  • 每个NAT网关可绑定的EIP数量有限制。
  • 每个NAT网关可创建的SNAT条目和DNAT条目数量有限制。

如果业务需求超出默认配额,可以提交工单申请提升配额。

12. 常见故障排查

12.1 SNAT无法访问公网

按照以下步骤排查:

  1. 检查路由配置:在公网NAT网关实例详情页查看指向NAT的专有网络路由信息,确认是否有指向该公网NAT网关的路由条目。
  2. 检查SNAT条目状态:在SNAT管理页签确认SNAT条目的状态为“可用”。
  3. 检查源地址:确认访问公网的源地址在SNAT条目的源网段内。
  4. 检查EIP绑定状态:确认NAT网关已绑定至少一个EIP且状态正常。

12.2 DNAT无法被公网访问

按照以下步骤排查:

  1. 检查安全组:确认ECS实例的安全组已放行对应服务端口。
  2. 检查EIP绑定:如果ECS实例本身绑定了EIP,需要先解绑才能通过DNAT访问。
  3. 检查DNAT条目配置:确认公网端口、私网IP、私网端口和协议类型配置正确。
  4. 检查NAT网关模式:确认公网NAT网关已切换至NAT模式。

12.3 其他常见问题

  • 可用区无法购买NAT网关:由于资源建设原因,NAT网关在某些可用区尚未部署,可以调用ListEnhancedNatGatewayAvailableZones查询支持创建的可用区。
  • EIP找不到:创建的EIP和NAT网关不在同一地域,请选择与NAT网关同一地域下的EIP。
  • 一个EIP能否同时用于DNAT和SNAT:可以,但当DNAT条目粒度为任意端口时,该EIP将无法再用于创建其他DNAT或SNAT条目。

13. 企业级最佳实践

13.1 最小权限原则

在配置SNAT时,建议遵循最小权限原则,配置目标网段为访问的具体公网网段,而不是简单地使用0.0.0.0/0。这样可以避免VPC内资源意外访问不应访问的公网地址。

13.2 多EIP负载均衡

当业务流量较大时,可以为NAT网关绑定多个EIP,并在创建SNAT条目时选择“使用多IP”。多个EIP可以实现出口流量的负载均衡,避免单一EIP成为性能瓶颈。

13.3 监控与告警

建议为NAT网关配置监控告警,关注以下指标:

  • 公网出流量和入流量
  • 并发连接数
  • 丢包率
  • EIP带宽利用率

通过云监控服务可以实时查看这些指标,并在异常时触发告警通知。

13.4 定期审计

定期审查NAT网关的SNAT和DNAT条目配置,删除不再使用的规则,避免安全风险和不必要的成本支出。

14. 总结

本文全面介绍了阿里云VPC中公网NAT网关的配置方法,从产品选型、创建NAT网关、绑定EIP、配置SNAT和DNAT条目,到路由表机制、高可用部署、自动化配置、故障排查和最佳实践。通过掌握这些技能,您可以灵活地为VPC内资源提供安全、高效、高可用的公网访问能力。

无论是开发测试环境还是生产环境,NAT网关都是VPC公网访问的核心组件。结合自动化工具(如阿里云CLI和Terraform)可以实现基础设施的代码化管理,提升运维效率。同时,合理的架构设计(如跨可用区容灾、多EIP负载均衡)和持续的监控告警,能够确保业务的稳定运行。

Q&A

Q1:NAT网关和EIP有什么区别?什么时候该用NAT网关?

A1:EIP是独立的公网IP资源,可以绑定到单个ECS实例上使其获得公网IP。NAT网关则是一种网络地址转换服务,可以让VPC内多台ECS共享一个或多个EIP访问公网。当您有多台ECS需要访问公网但不想为每台都分配EIP时,或者需要统一管理公网出入口时,应该使用NAT网关。

Q2:SNAT和DNAT可以同时配置吗?

A2:可以。SNAT用于VPC内资源主动访问公网,DNAT用于公网用户访问VPC内的服务。两者可以同时配置在同一个NAT网关实例上,互不干扰。但需要注意,当一个EIP同时用于SNAT和DNAT时,如果DNAT条目粒度为任意端口,则该EIP无法再用于创建其他DNAT或SNAT条目。

Q3:配置SNAT后ECS仍然无法访问公网,怎么办?

A3:按照以下步骤排查:首先检查VPC路由表中是否有指向NAT网关的0.0.0.0/0路由;其次检查SNAT条目的状态是否为“可用”;然后确认ECS实例所在的交换机在SNAT条目的源网段内;最后确认NAT网关已绑定EIP且EIP状态正常。

Q4:NAT网关支持IPv6吗?

A4:公网NAT网关目前主要支持IPv4地址转换。如果您的VPC需要IPv6公网访问,可以考虑为VPC和交换机开启IPv6功能,系统会自动创建IPv6网关。对于纯IPv6场景,建议使用IPv6网关而非NAT网关。

Q5:NAT网关的计费方式是怎样的?

A5:公网NAT网关仅支持按量付费(后付费),计费方式为按使用量计费。计费项包括实例费和容量单位CU费。计费周期为1小时,不足1小时按1小时计算。跨可用区容灾模式的NAT网关仅支持按量付费,不支持包年包月。

Q6:如何实现多个VPC共用同一个NAT网关?

A6:通过VPC对等连接可以实现多个VPC共用一个公网NAT网关。在两个VPC之间创建对等连接并配置路由条目实现私网互通,然后在公网NAT网关配置SNAT条目,即可实现多个VPC通过同一个NAT网关访问公网。

相关文章
|
5天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
409 125
|
7天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
696 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
5天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
405 123
|
3天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
302 108
|
4天前
|
存储 人工智能 数据可视化
别再手动复制 Skill 了:多 Agent 时代的 Skill 管理方案
多 Agent 场景下 Skill 的统一管理与同步。
245 124
|
18天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
11天前
|
缓存 人工智能 运维
GLM 5.2自托管全流程实战:硬件选型、vLLM/SGLang部署与成本盈亏测算
2026年智谱发布GLM 5.2超大混合专家模型,区别于以往仅开放API的闭源大模型,该模型权重以MIT开源协议对外发布,企业与开发者可完整下载、本地审计、私有化部署,实现数据不出环境、自定义微调、自主调度推理资源。GLM 5.2拥有753B总参数,原生支持百万级上下文窗口,在代码生成、长文档推理、数学逻辑等多项基准测试中对标国际顶尖商用模型,是首款可完整自托管的前沿代码向大模型。
910 0
|
13天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)