阿里云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网关访问公网。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
7月前
|
人工智能 机器人 API
一人成团:阿里云、本地部署OpenClaw多Agent协作系统完整搭建教程(飞书接入+大模型配置+避坑大全)
在AI协同办公逐步普及的今天,单一对话式AI已经无法满足复杂任务处理需求。OpenClaw(Clawdbot)作为轻量化多智能体编排框架,支持角色分工、任务拆解、消息路由、跨Agent通信与共享知识库,搭配飞书作为统一交互入口,可快速搭建一支由**项目经理、研究员、编辑、工程师**组成的全自动AI团队。用户只需下达一次指令,AI团队即可自动完成调研、写作、开发、汇总全流程,真正实现“一人指挥、团队作战”。
1352 1
|
8月前
|
自然语言处理 安全 机器人
2026年OpenClaw(原Moltbot、Clawdbot)极速部署教程及企业微信集成完整步骤
OpenClaw(前身为Moltbot、Clawdbot)针对企业微信集成场景优化了配置流程,无需复杂开发与代码编写,通过企业微信应用创建、权限开通、凭证配置与OpenClaw联动,即可实现两者无缝集成。集成后,用户可在企业微信单聊、群聊中直接与OpenClaw交互,完成办公自动化、智能问答、任务管理、消息推送等核心功能,适配企业内部协作与高效办公需求。本教程严格遵循官方适配逻辑,覆盖前期准备、全流程配置、功能验证及问题排查,确保操作可落地且信息原汁原味。
3301 4
|
4月前
|
存储 NoSQL Java
阿里云表格存储Tablestore对接使用完全指南
本文系统讲解阿里云表格存储Tablestore(原名OTS)的对接与使用方法。首先介绍Tablestore的产品定位、核心优势与三种数据模型(宽表、时序、消息),帮助读者建立正确的技术认知。随后详细说明从开通服务、创建实例到获取访问凭证的完整准备工作,并给出Java、Python、Node.js、Go四种主流语言的SDK安装与客户端初始化代码。在核心操作部分,深入讲解数据表的创建与管理、单行与批量读写、条件更新与删除等基础数据操作,附带完整可运行的代码示例。高级功能方面,重点介绍多元索引的创建与使用、通道服务实现数据实时消费、时序模型处理物联网数据,以及全局二级索引与局部事务等特性。最后阐述T
382 0
|
4月前
|
弹性计算 监控 容灾
阿里云VPC NAT网关配置完全指南:从零搭建公网访问架构
本文系统讲解阿里云VPC中NAT网关的配置方法与核心原理。首先介绍NAT网关的产品定位与两种类型(公网NAT网关与VPC NAT网关)的区别,然后逐步拆解创建公网NAT网关、绑定弹性公网IP、配置SNAT条目实现VPC内无公网IP的ECS访问互联网、配置DNAT条目将内网服务暴露到公网的完整操作流程。深入分析路由表与NAT网关的协同工作机制、SNAT与DNAT的地址转换原理、多可用区高可用部署方案。结合阿里云CLI和Terraform提供自动化配置代码示例,涵盖按量计费模式下的成本构成、配额限制、常见故障排查方法(如SNAT无法访问公网、DNAT无法被公网访问等),并给出企业级最佳实践建议,包
|
11月前
|
存储 弹性计算 API
阿里云服务器带宽值多大合适?公网带宽多少M够用?
阿里云服务器带宽选择需根据实际场景:轻量应用选1-5M,中小型网站/API建议5-20M,视频、大文件下载等高并发业务建议50M以上。可结合CDN、OSS、弹性公网EIP和共享带宽降低成本,提升性能。
1803 155
|
7月前
|
安全 关系型数据库 MySQL
阿里云云数据库RDS功能、优势、应用场景及收费标准与最新活动参考
阿里云的云数据库RDS是一款安全稳定、便捷易用、可弹性伸缩的关系型数据库服务,支持MySQL、SQL Server、PostgreSQL和MariaDB等主流数据库引擎。它提供高可用架构、自动化运维、安全防护及弹性扩展等核心功能,满足企业不同业务场景需求,如高可用与容灾、读写分离与负载均衡、安全与合规等。此外,阿里云还提供多款特惠云数据库产品及云服务器优惠活动,助力企业轻松上云,实现数据高效管理与业务创新提速。
|
7月前
|
弹性计算 人工智能 Linux
阿里云服务器使用指南:2026新手入门指南,一篇文章全搞定
2026阿里云新手指南:详解轻量应用服务器与ECS区别,手把手教你三步购买(含¥38/年秒杀技巧)、网页/终端远程登录、WordPress/OpenClaw一键部署,并附防火墙配置、密码修改等安全设置及常见问题排查方案。
1063 1
|
7月前
|
人工智能 Cloud Native 安全
AWS Bedrock托管Claude 4.6的工程实践与合规思考
近期AWS Bedrock集成Claude 4.6引发热议。该架构以VPC内数据隔离、云原生无缝集成及Firecracker微虚拟机硬隔离为核心,兼顾合规(SOC2/GDPR)、安全与工程效率。国内企业出海需关注主体资质、模型白名单申请及跨境网络优化。
|
7月前
|
Java PHP 开发工具
2026 年阿里云对象存储OSS超详细教程:功能全解与一步一步上手流程(新手小白也能立刻上手)
阿里云OSS是安全、稳定、无限扩容的云端对象存储服务,适用于图片、视频等静态资源存储。支持高并发访问、全球加速、防盗链与加密。本文详述开通流程及Java/PHP/Python/C#多语言上传实践。
|
网络安全 数据库 网络协议
已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)
之前做好的asp.net部署后,发现 访问数据库时: 异常:已捕获: "已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。
2698 0

热门文章

最新文章