You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多VPC架构下从私有VPC连接AWS私有ALB的方案咨询

解决VPC3无法修改配置时访问VPC1私有ALB的方案

这问题我之前帮客户处理过类似的,核心难点就是VPC3的网络配置完全碰不得,那咱们得把VPC2当成中转枢纽来做文章,给你两个实用的方案,分场景选就行:

方案1:用EC2实例做轻量中转(适合测试/小流量场景)

如果流量不大或者只是临时测试,用VPC2里的一台EC2做转发跳板最省事:

  • 在VPC2的私有子网里启动一台EC2实例,安全组要开两个口子:允许VPC3的20.30.0.0/16访问你要用到的端口(比如ALB的80/443),同时允许访问VPC1 ALB的对应端口和子网范围
  • 开启EC2的IP转发功能:Linux系统的话,先临时生效sysctl -w net.ipv4.ip_forward=1,再把net.ipv4.ip_forward = 1写入/etc/sysctl.conf确保重启后生效
  • 配置iptables转发规则,把指向这台EC2的流量转去VPC1的ALB:
    iptables -t nat -A PREROUTING -d <EC2私有IP> --dport <ALB端口> -j DNAT --to-destination <ALB私有IP>:<ALB端口>
    iptables -t nat -A POSTROUTING -d <ALB私有IP> --dport <ALB端口> -j SNAT --to-source <EC2私有IP>
    
  • 最后VPC3里的资源直接访问这台EC2的私有IP+对应端口,就能间接打到VPC1的ALB了

方案2:用Network Load Balancer(NLB)做高可用中转(适合生产场景)

如果是生产环境需要高可用,用VPC2的内部NLB来中转是最优解:

  • 在VPC2里创建一个内部NLB,监听端口和VPC1 ALB的端口保持一致(比如80/443)
  • 创建目标组,把VPC1的私有ALB的私有IP或者DNS名称加进去(因为VPC1和VPC2已经对等,NLB能正常访问到ALB)
  • 检查VPC2的路由表,确保已经有指向VPC1 10.0.0.0/16的对等路由(这个应该已经配置好了,毕竟VPC1和VPC2是对等的)
  • 给NLB的安全组配置规则:允许VPC3的20.30.0.0/16访问监听端口
  • 这样VPC3的资源只需要访问VPC2中NLB的私有DNS或者IP,流量就会自动转发到VPC1的ALB,而且NLB自带高可用,不用操心单点问题

关键注意事项

  • 不管用哪个方案,都要确保VPC1的ALB安全组允许来自VPC2中转资源(EC2/NLB)的流量访问
  • 因为所有VPC都没有互联网网关,EC2的镜像要确保能在私有环境获取:要么用AWS PrivateLink访问EC2镜像仓库,要么提前把镜像复制到你的私有区域
  • 别忘了在VPC1和VPC2的对等连接里开启允许DNS解析的选项,这样VPC2的资源才能正确解析VPC1 ALB的私有DNS名称

内容的提问来源于stack exchange,提问作者Wikum Ekanayake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:04:47