11

在我的开发车间,我们在位于远程网络上的虚拟服务器上部署代码。

我们首先打开与网关服务器的 SSH 连接,然后通过本地端口通过 SSH 隧道 RDP 访问该网络上的机器。

我非常希望能够以相同的方式本地访问在这些服务器上运行的 SQL Server 实例。

我设置了一个本地端口 (3398) 以重定向到远程实例上的 SQL Server 端口 (L3398 -> remote.machine.com:1433)。

然后我可以通过远程登录到 localhost 3398 来实际测试连接,我得到了一个连接:屏幕清除,我可以在一些监听过程中输入字符。

但是当我尝试将 SSMS 连接到 localhost:3398 时,它会超时,然后声称没有 SQL Server 在该端口上侦听:

Cannot connect to localhost:3398

Additional information:
A network-related or instance-specific error occurred while establishing a connection 
to SQL Server. The server was not found or was not accessible. Verify that the
instance name is correct and that SQL Server is configured to allow remote
connections. (...)

我确信服务器接受远程连接,因为我在通过 RDP 登录到远程网络中的另一台机器时已经远程连接到它。

我用谷歌搜索知道这是可能的;有谁知道为什么这不起作用,或者我可以做些什么来诊断并希望解决问题?

谢谢!

4

4 回答 4

31

而不是连接到 localhost:3398 使用 127.0.0.1,3398

于 2011-09-06T20:22:07.957 回答
1

对于身份验证类型Azure Active Directory - Universal with MFA(多因素身份验证),除了正确指定端口(127.0.0.1,3398)之外,我还必须将主机指向localhost.

在 Windows 上,我必须编辑我的hosts文件以包含服务器主机:

127.0.0.1    server.example.com

然后,在 SSMS 中,我可以连接到server.example.com,3398,这将正确执行 MFA。

我也可以在更高的 DNS 级别执行此重定向。

于 2019-08-07T18:29:52.090 回答
0

问题可能是 SSMS 正在尝试访问 SQL Server Browser 服务,即 UDP 端口 1434。请查看http://technet.microsoft.com/en-us/library/cc646023.aspx以了解您可能需要转发其他端口才能使其正常工作。

于 2011-08-02T17:07:12.380 回答
0

实际上,我很确定我已经找到了答案。

在远程网络(我们无法控制)上,出于安全目的,数据库服务器似乎设置为忽略来自网关机器的数据库请求。所以我想除了说服他们给我们完整的 VPN 访问权限之外,没有什么好的解决方案。感谢大家的帮助。

于 2011-10-07T21:20:08.130 回答