每次我尝试连接到 AWS 服务器上的远程 SQLServer Express 实例时,都会收到网络或实例特定的错误。
到目前为止我已经尝试过:
我确保应用于实例的安全组对所有源连接 (0.0.0.0/0) 的端口 1433 都有入站规则
我最初为 Windows 防火墙添加了 TCP 1433 的例外,并最终完全禁用了 Windows 防火墙以将其排除在外。目前它仍处于禁用状态。
我假设我需要一个公共 IP 地址,因此我为该实例分配了一个弹性 IP。我可以使用此弹性 IP 通过 RDP 进入服务器,因此我知道关联良好。
我启用 TCP 作为 SQL Server 实例的客户端连接协议。
当我通过 RDP 进入服务器并执行 IPCONFIG /ALL 时,我假设我会看到 IP 地址与分配的弹性 IP 相同,但事实并非如此,我仍然看到私有内部 IP 地址,我不确定这是否是我的问题的一部分,正如您从下面的本地连接测试中看到的那样。
当远程连接到服务器时,我可以使用本地环回地址 + 实例名称:127.0.0.1\SQLEXPRESS 成功连接到 SQL Server Management Studio。我还可以使用私有 IP + 实例名称:xxx.xxx.xxx.xxx\SQLEXPRESS 成功连接到 SSMS。这似乎表明 SQLServer 的 TCP 客户端协议已启用并正常工作。但是,当我尝试使用我的弹性 IP 地址 + 实例名称在本地连接 SSMS 时,我得到的网络连接错误与我尝试从本地 PC 远程连接时得到的相同。
因此,即使我可以使用我的弹性 IP 地址建立与服务器的 RDP 连接,但似乎弹性 IP 并未在内部或与 SQL Server 关联。
有任何想法吗?
答案1
您实际上需要在 SQL Express 中启用远程 Tcp/IP 连接。默认情况下,每种类型的远程连接都被禁用。您可以通过本文启用它: http://www.linglom.com/2009/03/28/enable-remote-connection-on-sql-server-2008-express/ 或者
答案2
为 AWS 设置入站规则
TCP 端口 1433 但 UDP 端口是 1434
由于有两个带有端口 1433 的规则,因此公网 IP 无法连接到 SQL 服务器实例。