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

同一VPC内EC2实例无法连接RDS实例的排查求助

排查同一VPC内EC2无法通过安全组规则连接RDS的问题

这种坑我之前踩过好几次!明明VPC内的EC2和RDS,配置了安全组互访却连不上,反而加EC2公网IP就好使,大概率是这几个细节没注意到:

1. EC2安全组的出站规则被忽略了

很多人只盯着RDS的入站规则,却忘了EC2自身的安全组得放行到RDS端口的出站流量。比如你的RDS用的是MySQL的3306端口,或者PostgreSQL的5432端口,得确保EC2的安全组出站规则里,允许目标为RDS安全组(或对应端口)的流量通过。毕竟流量是双向的,光RDS允许进,EC2不让出也白搭。

2. 你可能用了RDS的公网端点来连接

如果你的RDS实例同时开启了公网和内网端点,当你用公网地址连接时,流量会绕Internet Gateway走一圈,这时候RDS识别到的是EC2的公网IP,自然只认你添加的公网IP规则。正确的做法是用RDS的内网私有端点/IP来连接,这样流量才会走VPC内部的私有网络,RDS才会匹配到EC2的安全组规则。

3. 路由表的本地路由被篡改了

你说用了默认路由表,但得确认默认路由表中,VPC私有网段(比如10.0.0.0/16)对应的路由目标是不是local。如果这条本地路由被错误地改成指向Internet Gateway,那VPC内的流量会被强制走公网,RDS看到的还是EC2的公网IP,自然不触发安全组的互访规则。

4. RDS安全组规则的配置细节出错

检查下RDS的入站规则:

  • 有没有比允许EC2安全组更靠前的拒绝规则?安全组规则是按顺序匹配的,拒绝规则会优先生效。
  • 源是不是选错了?比如你以为选的是EC2的安全组,结果不小心选成了其他无关的安全组。
  • 端口是不是匹配?比如RDS用的是自定义端口,你却配置了默认的3306,那规则等于无效。

5. EC2的多网卡导致流量路径异常

如果你的EC2实例绑定了多个弹性网卡,其中一个带公网IP,另一个是内网网卡,连接RDS时可能默认走了公网网卡的路由,导致流量以公网IP的形式访问RDS。这种情况可以检查EC2的路由策略,或者直接用内网网卡的IP来发起连接测试。

建议你先从「确认RDS连接地址是内网端点」和「检查EC2出站规则」这两点入手,这两个是最常见的问题根源!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 07:03:53