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

apphuang2026年06月29日 09:39:197

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

相关文章

享受阿里云返点优惠,开启超值云计算之旅!

享受阿里云返点优惠,开启超值云计算之旅!

阿里云是中国领先的云计算服务提供商,提供云计算、大数据、人工智能等创新技术,为企业和个人提供一站式的云端解决方案。作为中国云计算行业的领军企业,阿里云通过积极的市场营销策略吸引了大量企业和个人用户,为…

阿里云代理商:您的云端合作伙伴

阿里云代理商:您的云端合作伙伴

在当今数字化飞速发展的时代,云计算服务成为了企业和个人实现高效运营、创新发展的重要支撑。而阿里云,作为全球领先的云计算及人工智能科技公司,以其强大的技术实力和广泛的服务体系,为众多用户提供了卓越的解决…

买阿里云服务器能便宜吗?十年代理揭秘 3 大省钱攻略!

买阿里云服务器能便宜吗?十年代理揭秘 3 大省钱攻略!

作为深耕阿里云代理领域 10 年的 “老司机”,经常被问到:“买阿里云服务器能便宜吗?有没有优惠价格?” 今天就用实打实的行业经验告诉你:不仅能便宜,选对渠道还能省一大笔! 这篇文章带你解锁阿里云服务…

做了 10 年腾讯云代理,我想跟你聊聊返佣那些事儿​

做了 10 年腾讯云代理,我想跟你聊聊返佣那些事儿​

最近总有朋友问我:“腾讯云有返点吗?腾讯云服务器能拿佣金不?返佣比例到底有多少?” 作为一个在腾讯云代理行业摸爬滚打了 10 年的 “老人”,今天就来跟大家好好…

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商的核心价值定位1. 代理商的角色与职责阿里云代理商作为阿里云生态的核心合作伙伴,承担着双重核心职能:• 产品销售:负责推广销售阿里云全系列云产品,包括云服务器ECS、云数据库RDS、对象存…

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

01一、阿里云代理商的核心价值定位1. 代理商的角色与职责阿里云代理商作为阿里云生态的核心合作伙伴,承担着双重核心职能:• 产品销售:负责推广销售阿里云全系列云产品,包括云服务器ECS、云数据库RDS…