无法从VPC外部连接AWS RDS SQL Server实例求助
问题背景
创建了公开访问设为YES的AWS RDS SQL Server Express实例,安全组已配置允许办公IP及同VPC内EC2子网访问,EC2上的SSMS可正常连接,但外部Mac的Azure Data Studio、Dotnet应用均无法连接(已尝试开放安全组至0.0.0.0/0,问题依旧)。
排查步骤
确认RDS公网IP解析
在本地Mac执行命令:nslookup <你的RDS端点>,检查返回的IP是否为非内网段(如非10.x、172.x、192.168.x开头)。若返回内网IP,说明实例所在子网无指向Internet Gateway(IGW)的路由,或子网为私有子网——私有子网下即使开启公开访问,RDS也不会分配公网IP。检查子网路由表配置
进入RDS实例所在子网的关联路由表,确认存在目标为0.0.0.0/0、指向IGW的路由条目。若无此条目,需添加该路由,确保子网能访问公网。测试本地网络端口连通性
在Mac上执行nc -zv <RDS端点> 1433(若自定义了端口则替换为对应端口),测试是否能连通SQL Server端口。若不通,说明办公网络的防火墙/路由器封禁了该出站端口,需联系网络管理员放行。验证SQL Server远程连接配置
通过EC2上的SSMS连接实例后:- 打开「服务器属性」→「连接」,确认勾选「允许远程连接到此服务器」;
- 打开「SQL Server配置管理器」→「SQL Server网络配置」→「MSSQLSERVER的协议」,确保TCP/IP协议处于启用状态。
确认公开访问设置生效
查看AWS控制台RDS实例的「连接」标签,确认「公有可访问性」显示为Yes。若此前修改过该设置,需重启RDS实例确保配置生效。检查连接字符串正确性
Dotnet应用连接字符串示例:Server=<RDS端点>,1433;Database=<你的数据库名>;User Id=<用户名>;Password=<密码>;TrustServerCertificate=True;Azure Data Studio需勾选「信任服务器证书」选项——非Windows环境下连接SQL Server通常需要此设置跳过证书验证。
内容的提问来源于stack exchange,提问作者Chandy Hendrix

