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

同VPC同安全组的RDS PostgreSQL双向复制安全组规则失效原因

问题原因及排查方向

1. RDS公网访问配置导致流量走公网

如果你的RDS实例开启了公有可访问选项,虽然同VPC内的实例理论上会解析到RDS的私有IP,但某些场景下(比如RDS部署在公有子网),PostgreSQL内部发起的pglogical连接可能会优先尝试公网IP。此时连接的源IP会是VPC的NAT网关公网IP,而非另一个RDS的私有IP,导致安全组中“允许同安全组流量”的规则无法匹配(该规则只识别VPC内网的私有IP),最终超时。

解决方式:

  • 关闭RDS实例的“公有可访问”选项(在RDS控制台的实例连接设置中修改)
  • 确保DSN中使用RDS的默认端点(VPC内解析会指向私有IP,关闭公网访问后更稳妥)

2. 安全组规则配置错误

检查安全组的入站规则是否符合要求:

  • 确认入站规则的源是你的安全组ID(sg-xxxxxx),而非目标字段
  • 规则端口明确指定5432(PostgreSQL默认端口),协议选择TCP
  • 确保两个RDS实例都关联了这个配置正确的安全组

3. PostgreSQL的pg_hba.conf限制

虽然你的错误是超时而非连接拒绝,但仍需排查RDS的pg_hba.conf是否限制了连接范围:

  • 在RDS参数组中找到pg_hba_rules参数,添加允许VPC内网段(比如你的VPC CIDR 10.0.0.0/16)或另一个RDS私有IP的规则,示例格式:
    host    main     xxx     10.0.0.0/16     scram-sha-256
    
  • 修改后重启RDS实例使参数生效

4. VPC路由表或子网配置问题

如果两个RDS部署在不同子网,检查子网路由表:

  • 确认路由表中存在指向local目标的默认路由(允许VPC内子网间流量互通)
  • 没有自定义路由规则拦截了内网流量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:45:19