如何为私有子网中的EC2实例设置固定公网IP?
解决AWS私有子网EC2实例固定公网IP访问问题
核心问题分析
私有子网内的EC2实例默认无法直接通过弹性IP暴露给公网,若你的VPC配置了NAT网关,EC2的出站流量会优先走NAT网关的公网IP,这就是你执行curl https://icanhazip.com查到的IP与弹性IP不一致的原因。要实现外部访问+固定公网IP,需按以下方式配置:
正确配置步骤
步骤1:确认VPC与子网基础配置
确保你的VPC已创建并关联互联网网关(IGW),同时给私有子网的路由表添加一条目标为0.0.0.0/0、下一跳指向互联网网关的路由规则(注:添加后该子网将具备直接公网访问能力,若需保留私有子网无直接公网访问的特性,可改用负载均衡方案)。步骤2:为EC2实例绑定弹性IP
- 进入EC2控制台,找到目标实例,确认其主网络接口支持弹性IP绑定。
- 在弹性IP控制台,选择未关联的弹性IP,点击「关联弹性IP地址」,选中目标EC2实例的主网络接口完成绑定。
步骤3:配置安全组与网络ACL
- 安全组:添加入站规则,允许外部访问的业务端口(如80、443或自定义端口),源地址设为
0.0.0.0/0或指定的外部服务器IP段。 - 网络ACL:添加入站规则放行对应端口的流量,出站规则放行响应流量(如
0.0.0.0/0),确保规则优先级设置正确。
- 安全组:添加入站规则,允许外部访问的业务端口(如80、443或自定义端口),源地址设为
替代方案(保留私有子网特性)
若不想修改私有子网路由,可通过负载中转实现:- 在公有子网创建应用负载均衡(ALB)或网络负载均衡(NLB),为负载均衡绑定弹性IP(NLB支持直接绑定,ALB可通过关联带弹性IP的公有子网实现固定公网IP)。
- 将负载均衡的目标组指向私有子网内的EC2实例,确保负载均衡安全组允许外部流量,EC2安全组允许负载均衡的流量访问。
- 外部服务器通过负载均衡的弹性IP访问EC2,EC2出站流量仍走NAT网关(若配置),入站流量则通过固定弹性IP进入。
验证配置
完成配置后:
- 从外部服务器尝试访问弹性IP的目标端口,确认连接正常。
- 若采用直接绑定弹性IP的方案,在EC2内执行
curl https://icanhazip.com应返回该弹性IP;若采用负载均衡方案,返回的是NAT网关IP(属于正常情况,因出站流量走NAT)。
内容的提问来源于stack exchange,提问作者Rukarumel
相关产品推荐
相关产品推荐

