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

AWS中如何结合现有VPN配置搭建NAT网关,实现无公网IP的EC2实例访问互联网

AWS中如何结合现有VPN配置搭建NAT网关,实现无公网IP的EC2实例访问互联网

嘿,我来帮你一步步搞定这个配置,结合你现有的VPN环境,让无公网IP的EC2也能顺畅访问互联网~

先明确你的现有环境关键点

你已经具备:

  • VPC(172.31.0.0/16)+ 3个子网(172.31.32.0/20、172.31.0.0/20、172.31.16.0/20)
  • 已关联互联网网关(IGW)
  • Client VPN端点关联了172.31.0.0/20子网,授权规则允许访问VPC(172.31.0.0/16)和全量互联网(0.0.0.0/0)

步骤1:创建NAT网关

NAT网关是无公网IP EC2的“上网代理”,先把它建起来:

  • 选一个已有公网路由的子网部署NAT网关(比如你的172.31.32.0/20或172.31.16.0/20,只要这个子网的路由表已经指向IGW就行)
  • 创建时给NAT网关分配一个弹性公网IP(EIP),这是它对外访问互联网的必要入口,必须配置
  • 记好NAT网关的ID(比如nat-xxxxxx),后面路由配置要用到

步骤2:调整子网路由表,让EC2走NAT网关上网

接下来修改目标子网的路由规则,引导无公网IP的EC2通过NAT网关出网:

  • 找到你想部署无公网IP EC2的子网对应的路由表(比如172.31.0.0/20、172.31.16.0/20,或者你指定的子网)
  • 如果路由表已有0.0.0.0/0 -> IGW的规则,先删掉它,然后新增一条路由:
    • 目标CIDR:0.0.0.0/0
    • 目标类型:NAT网关
    • 选择你刚创建的NAT网关ID
  • 对于VPN关联的172.31.0.0/20子网,这样修改后,子网里的EC2既能通过VPN被你的Mac访问,又能通过NAT网关访问互联网,完美兼容现有VPN配置

步骤3:检查安全组和VPN授权规则

确保没有安全策略挡住流量:

  • NAT网关的安全组(如果配置了):允许来自你EC2子网(172.31.0.0/16)的所有出站流量(至少要放开HTTP/HTTPS、DNS这些必要端口)
  • EC2实例的安全组:确认允许出站流量到0.0.0.0/0(默认一般是允许的,但最好检查下)
  • 你的Client VPN端点已经有0.0.0.0/0的授权规则,这个不用改,Mac通过VPN访问EC2的链路依然正常

步骤4:验证配置

最后测试下配置是否生效:

  • 启动一个不带公网IP的EC2实例,放到你修改过路由表的子网里
  • 从Mac通过VPN连接到VPC,尝试SSH访问这个EC2(确认VPN访问正常)
  • 在EC2里执行ping 8.8.8.8或者curl https://aws.amazon.com,如果能成功返回,说明NAT网关配置生效了

额外小提示

  • NAT网关是按使用量收费的,测试完成后可以删掉避免不必要的开销
  • 确保VPC的DNS配置是默认状态(enableDnsSupport和enableDnsHostnames都设为true),不然EC2可能无法正常解析域名

备注:内容来源于stack exchange,提问作者Mariano Martinez Peck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 10:32:43