You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2预留实例上SQL Server Express远程连接问题求助

解决AWS EC2上SQL Server Express命名实例无法远程连接的问题

我之前碰到过几乎一模一样的情况,折腾了大半天终于搞定,给你分享几个关键的排查点和解决方案:

1. 确认命名实例的端口配置(核心!)

SQL Server Express的命名实例默认不使用固定的1433端口,而是动态分配端口。你需要:

  • 在EC2实例上打开「SQL Server配置管理器」
  • 导航到「SQL Server网络配置」→「你的命名实例的协议」→「TCP/IP」,右键选择「属性」
  • 切换到「IP地址」标签,拉到最底部的「IPAll」部分:
    • 如果「TCP端口」是空的,说明用的是动态端口,把「TCP动态端口」里的数值记下来(比如12345),然后去AWS安全组里添加这个端口的TCP入站规则
    • 或者直接把「TCP动态端口」清空,在「TCP端口」里填1433,设置成固定端口(记得重启SQL Server服务生效)

2. 确保SQL Browser服务运行

命名实例依赖SQL Browser服务来通过1434端口(UDP)告知客户端实例的实际端口:

  • 在EC2实例的「服务」里找到「SQL Server Browser」,确认它处于运行状态,并且启动类型设为「自动」
  • 你已经在安全组开了1434 UDP端口,这一步要对应上服务是否正常运行

3. 检查EC2本地防火墙规则

除了AWS安全组,Windows实例本身的防火墙也要放行对应端口:

  • 打开「Windows Defender防火墙」→「高级设置」→「入站规则」
  • 添加两条规则:
    • 允许TCP端口(1433或者你查到的动态端口)的入站连接
    • 允许UDP 1434端口的入站连接

4. 验证SQL Server的监听状态

在EC2实例的命令提示符里运行:

netstat -ano | findstr ":你的端口号"

比如你用的是1433就运行netstat -ano | findstr ":1433",如果能看到对应的进程ID(PID),说明SQL Server正在监听这个端口;如果没有输出,回到配置管理器确认TCP/IP已经启用,端口设置正确,并且重启了SQL Server服务。

5. 连接字符串/SSMS连接方式正确

  • 用SSMS连接时,服务器名称要填EC2实例公网IP\命名实例名(比如1.2.3.4\SQLEXPRESS),不能只填IP地址
  • 如果你的实例没开启Windows身份验证远程连接,记得选择「SQL Server身份验证」,输入正确的用户名和密码

6. 先测试本地连接排除服务问题

在EC2实例内部用SSMS连接自己的命名实例,如果本地都连不上:

  • 检查SQL Server服务是否正常运行
  • 打开SQL Server属性,确认「连接」选项卡的「允许远程连接到此服务器」已经勾选
  • 确认「安全性」选项卡已经启用「SQL Server和Windows身份验证模式」

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:19:09