如何在AWS中通过LAN连接私有EC2实例到公有实例并访问互联网?
私有EC2通过公有EC2 LAN访问公网的配置步骤
1. 配置公有EC2的IP转发与网卡权限
- 确认公有EC2的第二个网卡(对接私有实例的网卡)部署在私有子网内,且该网卡的安全组允许私有子网CIDR段的入站访问(按需开放端口,或暂时全开放排查)
- 开启公有EC2的IP转发功能:
- 临时生效:登录公有EC2执行
echo 1 > /proc/sys/net/ipv4/ip_forward - 永久生效:编辑
/etc/sysctl.conf,添加或修改net.ipv4.ip_forward = 1,再执行sysctl -p加载配置
- 临时生效:登录公有EC2执行
2. 调整私有子网路由表
- 移除私有路由表中指向NAT Gateway的默认路由(如果要完全走公有EC2转发),添加新的默认路由:
0.0.0.0/0→ 公有EC2第二个网卡的私有IP - 确认该路由表已关联到私有子网
3. 检查安全组与NACL
- 私有EC2安全组:允许出站访问公有EC2的私有IP,同时允许公有EC2返回的流量(比如TCP/UDP响应包)
- 公有EC2安全组:允许私有子网CIDR的入站流量,同时允许出站到互联网的所有流量
- 子网NACL:
- 入站规则:允许私有子网CIDR到公有EC2私有IP的流量,允许互联网返回的流量到公有EC2公网IP
- 出站规则:允许公有EC2到互联网的流量,允许公有EC2到私有子网CIDR的流量
4. 验证与补全iptables规则
- 在私有EC2上ping公有EC2的私有IP,确认内网连通
- 若私有实例仍无法访问公网,给公有EC2添加NAT转发规则:
替换iptables -t nat -A POSTROUTING -o [公网网卡名] -j MASQUERADE[公网网卡名]为公有EC2连接互联网的网卡(用ip addr可查看,通常是eth0或ens5) - 执行
curl ifconfig.me在私有EC2上验证,出口IP应为公有EC2的公网IP
内容的提问来源于stack exchange,提问作者yuvaraj moorthi
相关产品推荐
相关产品推荐

