跨VPC访问云数据库时ping不通属正常现象,关键需验证TCP端口连通性;应检查对等连接状态、路由表配置(含精确CIDR和下一跳)、安全组规则(双向放行对应CIDR及端口),并优先使用内网IP而非域名连接。
云数据库实例不在同VPC时,ping 不通是正常的
跨 vpc 访问云数据库(如 rds、redis)时,ping 失败不等于连接失败——因为多数云厂商默认禁用 icmp 跨 vpc 透传,且数据库监听的是 tcp 端口,不是 icmp。关键看 telnet 或应用层连接是否能建立。
常见错误现象:Connection refused(目标端口未监听或安全组拦截)、Connection timed out(路由不通或对等连接未激活)、No route to host(本地路由表没配对端 VPC CIDR)。
- 确认对等连接状态为
active,且两端 VPC 的 CIDR 不重叠 - 在发起连接的 VPC 的路由表中,添加指向对等连接的路由条目:
目标网段填对方 VPC 的 CIDR,下一跳选已创建的对等连接 ID - 数据库所在 VPC 的安全组必须放行源 VPC 的 CIDR 段(不是单个 IP),协议为
TCP,端口为数据库实际端口(如3306、6379)
阿里云/腾讯云/AWS 对等连接的路由配置差异
不同云厂商对“路由下发”逻辑不一致,不能照搬文档配置。
阿里云:对等连接本身不自动同步路由,必须手动在双方 VPC 的路由表里分别添加对方 CIDR + 对等连接作为下一跳;腾讯云:创建对等连接后,需在控制台主动点击“接受连接”,再分别配置路由;AWS:VPC Peering 创建后默认不传播路由,需手动编辑两个 VPC 的路由表,并确保 Enable DNS resolution 开关按需开启(影响内网域名解析)。
- 阿里云的
route-table中,目标网段必须精确匹配对方 VPC CIDR(如10.2.0.0/16),不能写成0.0.0.0/0 - 腾讯云若使用了
CCN或云联网,优先走云联网路径,此时对等连接路由可能被绕过,需检查路由优先级 - AWS 的
VPC peering不支持跨区域,也不传递子网路由(即对方子网内的 ENI 若绑定了私有 IP,仍需确保该子网路由可达)
数据库连接字符串里的 host 应该填什么
不能填控制台显示的“内网地址”就完事——那个地址只在本 VPC 内解析有效。跨 VPC 后,DNS 解析行为取决于你是否开启了跨 VPC 的内网 DNS 转发。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
推荐做法:直接使用数据库实例的内网 IP(非域名),避免 DNS 解析环节出错。可在控制台或 describe-db-instances 接口中查到 Endpoint 对应的 PrivateIpAddress。
- 如果用了域名(如
mysql-xxx.rds.cn-shanghai.aliyuncs.com),确认当前 VPC 已绑定云解析 PrivateZone,且已将该域名关联到对端 VPC - MySQL 客户端连接时,
host参数填 IP 更可靠;若填域名,注意部分驱动(如旧版mysql-connector-java)会强制做 DNS 反查,导致超时 - Redis 连接时,
redis://URL 中的 host 必须可被客户端网络直接路由,不能依赖本地/etc/hosts临时映射(上线环境不可维护)
安全组和网络 ACL 都得检查,但重点在安全组
网络 ACL 是子网级别无状态过滤,而安全组是实例级别有状态过滤。绝大多数连不通问题,根因在安全组没开对端 CIDR。
典型误操作:只在数据库服务器的安全组里加了源 VPC CIDR,却忘了检查客户端所在 ECS 的安全组是否允许出方向(ECS 默认出方向全放行,但自定义规则可能限制);或者开了 0.0.0.0/0 却没限定端口,被安全审计驳回。
- 数据库侧安全组入方向:授权类型选
自定义 TCP,端口范围填实际端口(如3306/3306),授权对象填对方 VPC 的完整 CIDR(如10.1.0.0/16) - 客户端侧安全组出方向:通常默认放行,但如果改过规则,需确认目标端口和协议未被拒绝
- 网络 ACL 一般无需调整,除非你主动启用了它并加了 deny 规则;启用后记得检查入站和出站规则都要配对
telnet 或 nc -zv 测端口,再抓包看 SYN 是否发出、是否收到 SYN-ACK,比反复改配置更省时间。










