问题描述
使用ECS实例通过内网连接RDS for SQL Server实例时,提示以下错误信息。
无法连接到XXX。Cannot connect to XXX。
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: TCP Provider, error: 0 - 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。) (Microsoft SQL Server,错误:10060或258)
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
本文主要介绍以下2类场景的解决方法:
ECS通过内网无法访问RDS的解决办法
- 检查ECS和RDS实例是否位于不同的地域。如果不同,请参见解决无法连接实例问题。
- 检查ECS和RDS的网络类型是否不同。如果不同,例如一个是经典网络,一个是专有网络,请参见解决无法连接实例问题。
- 如果ECS和RDS实例的网络类型都是专有网络,则检查ECS与RDS实例是否位于不同的VPC。如果不同,请参见解决无法连接实例问题。
- 检查ECS实例的内网IP地址是否已添加到RDS实例的白名单。如果未添加,请参见设置白名单。
- 检查白名单是否设置成了0.0.0.0,正确格式应该为0.0.0.0/0。
说明:该地址允许任何设备访问RDS实例,有安全风险,请谨慎使用。
- 检查ECS实例中配置的RDS内网地址和端口是否正确。
ECS以外的设备无法访问RDS的解决办法
ECS以外的设备访问RDS时,只能通过外网连接。如果连接失败,解决办法如下所示。
- 检查您使用的连接地址是否为RDS的内网地址。如果是,需要改为外网地址。
说明:
- 检查是否已设置RDS白名单。如果未设置,请参见设置白名单。
- 检查白名单是否设置成了0.0.0.0。正确格式为0.0.0.0/0。
说明该地址允许任何设备访问RDS实例,有安全风险,请谨慎使用。
- 如果您已设置白名单,那么连接失败很可能是因为您在白名单中添加的设备公网IP地址并非设备真正的出口IP地址。原因如下所示。
说明:关于确认设备公网IP地址的方法,请参见定位本地IP。
- 公网IP地址不固定,可能会变动。
- IP地址查询工具或网站查询的公网IP地址不准确。
适用于
- 云数据库RDS SQL Server版