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

AWS公网Web服务器部署路由表配置与资源关联咨询

AWS VPC 路由配置实操与关联逻辑说明

核心资源关联逻辑先理清楚

先把几个资源的绑定关系掰明白,别乱绑:

  • 路由表是VPC的子资源,创建时必须指定所属VPC,不能跨VPC使用
  • 每个子网有且仅能关联一张路由表,创建子网时如果没手动指定,会自动绑定VPC默认的主路由表
  • 互联网网关(IGW)是VPC的公网出入口,创建后必须先附加(attach)到对应VPC,才能被路由表引用,它不需要直接绑定子网、EC2或者RDS
  • VPC内部同网段/跨子网的流量,默认通过路由表自动生成的本地路由转发,不需要额外配置公网相关规则

需求1:公网访问EC2 80端口Web服务的路由配置

前置检查(少一步都不通)

  • 放EC2的公网子网,已经关联了你配置的自定义路由表(没关联的话就用默认主路由表,也能用但不建议生产这么搞)
  • 互联网网关已经成功附加到当前VPC,状态显示为attached
  • 这台EC2已经绑定了弹性公网IP(EIP)或者启动时自动分配了公网IP,没有公网IP的话公网流量找不到实例
  • 域名myapp.example.com直接做A记录解析到EC2的公网IP/EIP就行,这步和路由表无关

具体路由条目配置

在公网子网关联的路由表中,只需要保留/添加2条路由:

  • 目标网段:你的VPC整体CIDR段(比如10.0.0.0/16),下一跳:local

    这条是VPC创建路由表时默认生成的本地路由,绝对不能删,负责VPC内部所有资源之间的通信

  • 目标网段:0.0.0.0/0,下一跳:你附加到VPC的互联网网关

    这条规则的作用是:所有目标地址不在VPC内部的流量(也就是所有公网流量),全部转发给互联网网关,双向打通公网出入的路由通道。公网用户访问域名的流量路径就是:用户终端 -> 公网 -> IGW -> 路由表转发 -> 公网子网 -> EC2 80端口。

配套安全配置提醒

你之前规划的NACL、安全组规则有个小坑:NACL是无状态的,除了入方向放行80端口,还要记得放开出方向1024-65535临时端口段的流量,不然EC2的回包会被NACL拦截;EC2的安全组是有状态的,只需要入方向放行80端口即可,出方向默认全通不需要额外调整。


需求2:EC2访问RDS 3306端口的路由配置

90%的人这里会瞎改路由表,实际上分两种场景:

场景1:RDS部署在同VPC内(推荐的常规部署方式)

完全不需要修改任何路由表规则。前面说的默认local路由已经覆盖了整个VPC的CIDR范围,EC2到RDS的流量属于VPC内部流量,直接通过local路由转发,不会走公网,延迟低也安全。
你只需要调整安全组/NACL规则即可:

  • RDS绑定的安全组,入方向添加规则:源地址填EC2绑定的安全组ID(不要写死IP,用安全组ID做源更灵活),协议TCP,端口3306
  • 如果RDS部署在独立子网,该子网关联的NACL要放行:入方向来自EC2所在公网子网网段的3306端口,出方向放行1024-65535临时端口段的回包流量;EC2所在公网子网的NACL要放开出方向到RDS子网网段的3306端口。

场景2:RDS开启了公网访问地址(非常不推荐)

现有公网子网的0.0.0.0/0指向IGW的路由已经能满足通信需求,不需要加新路由。只要在RDS的公网访问安全组里,放通EC2的公网IP/EIP的3306入站即可,这种方式流量会绕公网,延迟高且暴露攻击面,非特殊情况不要用。


常见踩坑点避坑

  • 路由表不需要直接关联EC2、RDS这类计算资源,它只和子网绑定,资源在哪个子网,就遵循哪个子网关联的路由表规则
  • 你当前的单公网子网架构,只需要1张关联公网子网的路由表就能满足所有需求,不需要重复建多张路由表
  • 不要删除路由表里的local路由,删了之后整个VPC内部通信直接中断,EC2连不上RDS
  • 生产环境建议给RDS单独划分没有公网路由的私网子网,私网子网关联的路由表不要加0.0.0.0/0指向IGW的规则,彻底避免RDS暴露到公网。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 06:09:32