Connection timed out 错误首要排查安全组入站规则,其次检查RDS公有可访问性、VPC路由与IGW关联、本地端口占用及DNS解析准确性。
如果您尝试连接 AWS RDS 实例时收到 Connection timed out 错误,该问题通常指向网络层不可达,而 VPC 安全组配置错误是最常见且首要排查的原因。但需注意,该错误也可能由其他网络配置环节导致,不能仅归因于安全组。以下是针对此报错的多种独立排查与修复路径:
一、检查并修正 VPC 安全组入站规则
安全组作为实例层面的有状态防火墙,若未显式允许来自客户端源 IP 或 CIDR 段对数据库端口(如 PostgreSQL 默认 5432、MySQL 默认 3306)的入站访问,则连接请求会在到达实例前被直接丢弃,表现为超时而非拒绝。
1、登录 AWS 管理控制台,进入 RDS 服务,选择目标数据库实例。
2、在 Connectivity & security 标签页中,定位到 Security groups 关联项,点击对应的安全组 ID。
3、切换至 Inbound rules 选项卡,点击 Edit inbound rules。
4、添加新规则:类型选择 PostgreSQL(或对应数据库类型),协议为 TCP,端口范围填入实际端口号(如 5432),源选择 My IP(临时调试)或指定客户端公网 IP/CIDR。
二、验证 RDS 实例的公有可访问性设置
当 RDS 实例部署在公有子网中但仍无法从互联网直连时,若其 Publicly accessible 属性为 No,则实例不会分配公网 DNS 名称,所有外部连接尝试均会超时,即使安全组已放行。
1、在 RDS 控制台的目标实例详情页,确认 Connectivity & security 区域中 Publicly accessible 显示为 Yes。
2、若为 No,点击 Modify,展开 Additional configuration,将 Publicly accessible 切换为 Yes,然后提交修改。
3、等待实例状态变为 Available 后重试连接。
三、确认 VPC 路由与互联网网关关联
即使安全组和公有访问设置正确,若 RDS 所在公有子网未关联有效的互联网网关(IGW),或子网路由表中缺少指向 IGW 的默认路由(0.0.0.0/0),出向响应包无法返回客户端,同样触发超时。
1、在 VPC 控制台中,定位到 RDS 实例所属的 VPC,查看其关联的 Internet Gateway 是否存在且已附加。
InsCode
InsCode 是CSDN旗下的一个无需安装的编程、协作和分享社区
下载
2、找到 RDS 所在子网,点击进入其 Route table 关联项。
3、检查路由表中是否存在目标为 igw-xxxxxxxx 且目的地为 0.0.0.0/0 的活动路由条目。
四、排查本地或中间网络端口占用与防火墙拦截
客户端本地运行的其他服务(如本机 PostgreSQL、Docker 容器、代理软件)可能已独占数据库目标端口(如 5432),导致连接请求被本地系统拒绝或静默丢弃;企业级防火墙或 ISP 运营商也可能主动屏蔽非标准数据库端口。
1、在客户端执行 netstat -an | findstr :5432(Windows)或 lsof -i :5432(Linux/macOS),确认端口是否被占用。
2、临时关闭本地防火墙(如 Windows Defender 防火墙、ufw)后重试连接。
3、尝试使用不同网络环境(如手机热点)连接同一 RDS 实例,以排除企业网络策略限制。
五、核对 DNS 解析与端点地址准确性
若客户端使用的 RDS 终端节点(Endpoint)拼写错误、区域不匹配或已被释放,系统可能无法解析主机名,导致连接发起阶段即失败,部分客户端库会将其统一归类为超时。
1、在 RDS 控制台实例详情页的 Connectivity & security 区域,完整复制 Endpoint 字段值(如 mydb.xxxxxxx.us-east-1.rds.amazonaws.com)。
2、在客户端所在机器执行 nslookup mydb.xxxxxxx.us-east-1.rds.amazonaws.com,确认能返回有效 IPv4 地址。
3、确保所用 Endpoint 的 AWS 区域与客户端配置的 SDK/CLI 默认区域一致。
