本地笔记本无法通过SMSS连接AWS RDS MS SQL Server的求助
如何在不开启公网访问的情况下从本地连接AWS RDS MS SQL Server
因为你不想开启RDS的公网访问权限,以下是几种安全可行的方案,按操作复杂度排序:
方案1:使用AWS Client VPN(适合个人长期使用)
这是最直接的方式,相当于在你的本地笔记本和AWS VPC之间建立加密VPN隧道,让本地设备接入VPC私有网络环境。
操作步骤:
- 在AWS控制台创建Client VPN端点:
- 选择与RDS实例相同的VPC
- 配置认证方式(推荐用AWS IAM认证,快速上手)
- 设置VPN的CIDR范围(注意不要和RDS VPC的CIDR重叠,比如RDS用10.0.0.0/16,VPN可设10.1.0.0/16)
- 关联RDS所在的私有子网到Client VPN端点
- 配置安全组:
- 给RDS的安全组添加入站规则:允许VPN的CIDR范围访问1433端口(MS SQL默认端口)
- 确保Client VPN的安全组允许出站到RDS私有子网IP段和1433端口
- 下载Client VPN配置文件,在本地安装AWS VPN客户端并导入该配置
- 连接VPN后,使用RDS的私有IP地址或内网端点(如
mydb.xxxxxx.us-east-1.rds.amazonaws.com,该域名会解析到私有IP)连接MS SQL
- 连接VPN后,使用RDS的私有IP地址或内网端点(如
方案2:使用AWS Systems Manager Session Manager端口转发(临时/快速测试)
如果不想搭建VPN,可通过SSM端口转发功能,借助VPC内的一台EC2实例中转,实现本地到RDS的连接。
操作步骤:
- 准备一台和RDS同VPC的EC2实例(可选最低配t2.micro,成本极低):
- 确保EC2实例已安装SSM Agent(Amazon Linux 2、Windows Server等官方镜像默认已安装)
- 给EC2实例的IAM角色添加
AmazonSSMManagedInstanceCore权限
- 配置安全组:
- 给RDS的安全组添加入站规则:允许EC2实例的私有IP访问1433端口
- EC2的安全组无需开放公网端口,SSM默认用443端口,AWS会自动处理访问
- 本地环境准备:
- 安装AWS CLI并配置有权限的凭证(需要
ssm:StartSession权限) - 安装Session Manager插件
- 运行端口转发命令:
aws ssm start-session --target <EC2实例ID> --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{"host":["<RDS私有IP>"], "portNumber":["1433"], "localPortNumber":["1433"]}'- 保持命令窗口打开,在本地MS SQL客户端连接
localhost:1433即可
- 保持命令窗口打开,在本地MS SQL客户端连接
现有配置的检查要点
你之前添加的安全组入站规则(允许自身公网IP)在关闭公网访问的情况下无效,因为RDS处于私有子网,无法直接接收公网IP的请求,需改成对应方案的源(VPN CIDR或EC2私有IP)。
另外检查VPC网络ACL:
- 入站规则:允许1433端口,源为VPN CIDR/EC2私有IP
- 出站规则:允许1024-65535端口(MS SQL客户端的随机端口),目标为VPN CIDR/本地IP段
内容的提问来源于stack exchange,提问作者A. Gh
相关产品推荐
相关产品推荐

