文档

由于路由问题导致ECS无法连接RDS实例

更新时间:

问题描述

ECS和RDS实例在同一个VPC和地域下,无法通过内网地址连接RDS实例(外网地址可以连接),Ping和Telnet命令执行失败。

问题原因

由于安装了Docker等服务导致变更了路由表的条目。

解决方案

重要
  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

  1. 登录问题ECS实例,执行以下命令,使用Ping命令测试RDS实例内网地址。

    ping rm-XXX-mysql.rds.aliyuncs.com

    系统显示类似如下,即使Ping不通也可以获取RDS实例内网IP。

  2. 执行以下命令,查看ECS实例的路由表信息。

    route -n

    系统显示类似如下,确认存在因为Docker等服务添加的路由条目(您也可以和正常的ECS实例路由表对比确认)。

  3. 执行以下命令,添加路由条目。

    route add -net [$Network] gw [$Gateway] dev [$Network_Card]
    说明
    • 您需确认在实际环境下添加该路由条目不影响当前业务。

    • [$Network]为RDS实例所在的网段。

    • [$Gateway]为网关地址,您可以使用ECS实例的内网地址。

    • [$Network_Card]为ECS实例内网IP所在网卡名称,一般为eth0。

  4. 执行以下命令,确认可以正常Ping通。

    ping rm-XXX-mysql.rds.aliyuncs.com

适用于

  • 云数据库RDS

  • 云服务器ECS

  • 本页导读 (1)
文档反馈