18

我第一次通过 VPN 连接到现有网络。我可以从 VPN 客户端 ping SQL Server 使用的 IP 地址,但 SSMS 没有连接到 SQL Server。我正在使用正确的登录 ID 和密码。

为什么会发生这种情况?有任何想法吗?

4

18 回答 18

15

在默认实例上,SQL Server 默认侦听 TCP/1433。这可以改变。在命名实例上,除非配置不同,否则 SQL Server 会侦听动态 TCP 端口。这意味着如果 SQL Server 发现该端口正在使用中,它将选择另一个 TCP 端口。在命名实例的情况下,客户端通常如何通过与 SQL Server 侦听器服务/SQL 浏览器通信来找到正确的端口。侦听 UDP/1434 并且无法更改。如果你有一个命名实例,你可以配置一个静态端口,如果你需要使用 Kerberos 身份验证/委托,你应该这样做。

您需要确定的是您的 SQL Server 正在侦听的端口。然后,您需要与您的网络/安全人员联系,以确定他们是否允许通过 VPN 与该端口进行通信。如果它们是,如所示,请检查您的防火墙设置。有些系统有多个防火墙(我的笔记本电脑就是一个例子)。如果是这样,您需要检查系统上的所有防火墙。

如果所有这些都正确,请验证服务器没有限制通过 IP 地址访问 SQL Server 端口的 IPSEC 策略。这也可能导致您被阻止。

于 2009-03-21T16:55:10.200 回答
6

当这种情况发生在我身上时,那是因为 DNS 无法正常工作。尝试在 SQL Server 登录中使用 IP 地址而不是服务器名称。

于 2009-03-21T14:31:06.130 回答
5

确保为 TCP/IP 启用了 SQL Server(可能有人禁用了它)?

这也将帮助您检查/验证 SQL 实例正在使用的端口号(以防有人将其从默认端口 1433 更改)。

显然,端口 1433(或 SQL 正在侦听的任何端口)需要被您的机器和运行 SQL 的机器之间的任何防火墙解除阻塞。

检查 SQL 的网络配置(需要安装 SQL Server 客户端工具):开始 -> 程序 -> SQL Server 200x -> 配置工具 -> SQL Server 配置管理器

连接到您需要的机器,然后展开 Tree Item (LHS) “SQL Server Network Configuration”,然后选择实例。您应该有四个选项 - 共享内存、命名管道、TCP/IP 和 VIA。您可以在 RHS 窗口中检查 TCP/IP 是否已启用。

如果您双击 TCP/IP 并点击“高级”选项卡,您还可以查看端口号。

其他想法..您使用的是 SQL 身份验证还是 Windows(域)身份验证?

  • 如果 SQL 身份验证(假设您使用的是用户名和密码),您确定要连接的 SQL 实例启用了混合模式身份验证吗?如果没有,您必须以管理员身份连接并更改默认安全设置以允许 SQL 身份验证。

  • 如果是 Windows 身份验证,您的网络是否可能正在使用 Kerberos?有人会认为 VPN 凭据将用于握手。我会检查您的帐户是否具有适当的登录权限。

于 2009-03-21T14:52:15.083 回答
3

我在尝试通过 Hamachi VPN 远程连接时也遇到了这个问题。我已经尝试了互联网上所有可用的东西(包括这篇文章),但仍然没有用。请注意,当我的本地网络上的机器上安装了相同的数据库时,一切正常。最后,我能够使用以下修复取得成功:在远程机器上,启用 TCP/IP 协议上的 IP 地址,如下所示:

在远程计算机上,启动 SQL Server 配置管理器,展开 SQL Server 网络配置,选择“SQLEXPRESS 协议”(或“MSSQLSERVER”),右键单击 TCP/IP,在出现的对话框中转到 IP 地址选项卡,并确保“IP1”元素是Active=Yesand Enabled=Yes。记下 IP 地址(对我来说没有必要修改这些)。然后停止并启动 SQL Server 服务。之后,确保远程计算机上的防火墙被禁用,或者端口 1433 允许例外,该端口包括本地子网和上一个对话框中记录的地址的子网。在您的本地计算机上,您应该能够通过将服务器名称设置为192.168.1.22\SQLEXPRESS(或[ip address of remote machine]\[SQL server instance name])来进行连接。

希望有帮助。

于 2012-11-07T19:36:13.323 回答
2

检查 SQL Server 正在使用的端口是否未被防火墙或 VPN 阻止。

于 2009-03-21T14:28:32.160 回答
2

Citrix Access Gateway 经常遇到这个问题。我通常会收到超时错误。如果您能够从网络上的客户端连接到数据库,但不能通过 VPN 从远程客户端连接到数据库,那么您可以忘记这里给出的大多数建议,因为它们都解决了服务器端问题。

当我将超时时间从默认值(15 秒)增加到 60 秒时,我能够连接,并且为了更好地衡量,将协议强制为 TCP/IP。这些事情可以在登录对话框的选项屏幕上完成:

`

于 2013-06-06T17:29:29.937 回答
2

只要您将防火墙设置为允许 SQL Server 实例使用的端口,您只需将数据源从更改=Server name=IP,Port

即,在连接字符串中使用类似的东西。

Data Source=190.190.1.100,1433;

您不必在客户端更改任何内容。

于 2016-03-10T03:40:31.420 回答
1

您可能没有打开/VPN 转发的 UDP 端口,它的端口号是 1433。

尽管客户端协议名称为“TCP/IP”,但 mssql 使用 UDP 进行 bitbanging。

于 2009-03-21T14:28:36.170 回答
1

SQL Server 使用 TCP 端口 1433。这可能被 VPN 隧道或服务器上的防火墙阻止。

于 2009-03-21T14:28:51.613 回答
1

连接到 VPN 时,每条消息都会通过 VPN 服务器,它无法将您的消息转发到 SQL 服务器正在处理的端口。

尝试

禁用 VPN 设置-> 属性-> TCP/IP 属性-> 高级-> 在远程网络上使用默认网关。

这样,您将首先尝试连接 SQL 服务器的本地 IP,然后才使用 VPN 服务器转发您

于 2009-03-21T14:31:28.690 回答
1

如果您使用的是 sql server 2005,请先启动 sql server browser 服务。

于 2010-06-30T17:58:43.240 回答
1

这解决了我通过 VPN 访问 SQL Server 2012 数据库的连接问题

使用 SQL Server 2012 配置管理器,

我去了 SQL Server 网络配置

然后单击新服务器实例并双击 TCP/IP 协议 [我之前也启用了此选项并重新启动了服务器,但仍然没有修复它]

现在 TCP/IP 已启用,我注意到 TCP/IP 属性高级对话框的“IP 地址”选项卡中的所有 IP 端口插槽都设置为 Enabled=No。

我很好奇为什么我的新安装将所有这些 IP 插槽都设置为 NO 而不是 Yes,所以我只是将它们更改为 YES。

现在通过 VPN 与服务器的连接效果很好,我没有更改任何端口号。

注意:我还卸载了 Visual Studio 2010 中的 SQL Server 2008 默认值,但我认为这对 TCP/IP 情况没有直接影响。一位同事告诉我,Visual Studio 附带的 2008 和 2005 安装可能会干扰 SQL 2012。

于 2014-01-01T13:36:06.427 回答
1

我在使用 SQL Server 2017 时也遇到了这个问题。

我通过VPN与服务器在同一个网络上,并且可以ping通它。在对无法使用任何身份验证方法感到沮丧之后——我在 SQL 服务器上设置了一个 SSH 服务器——并且我能够正常连接。这证实了正确的端口由于某种原因没有被击中。我什至创建了一个新的用户帐户、域帐户、两端的防火墙检查等......

我的解决方案是: 1. 将连接设置为在 SSMS 上严格使用 TCP/IP 2. 使用自定义字符串指向默认端口(例如:Data Source=192.168.168.166,1433;)

到目前为止,上面的所有其他评论都没有奏效。看起来必须包含端口(即使它是默认的)。

于 2018-02-08T06:57:09.203 回答
0

例如,尝试使用其 IP 更改服务器名称

SERVERNAME//SQLSERVER -> 192.168.0.2//SQLSERVER

它与我使用 VPN 完美结合

于 2020-11-20T04:26:19.143 回答
0

确保将端口 1433 添加到防火墙例外,并确保在防火墙端口设置下选中“任何 IP 地址”(见附件)。

在此处输入图像描述

于 2021-03-26T12:52:12.600 回答
0

如果在您的LAN上一切正常,但当客户端应用程序尝试通过VPN建立连接时失败,您可以考虑将路由器MTU(最大传输单元)设置从AUTO更改为低于最大值。

更多参考资料:

于 2021-09-20T14:12:12.997 回答
0

我的解决方案是启用并启动服务“SQL Server Browser”。还要确保,您在防火墙中允许此服务。

于 2021-12-08T06:36:30.593 回答
0

我有类似的问题,但效果很奇怪。如果我通过 VPN (site2site) 使用 SMSS,我将无法连接。但如果我使用 OpenVPN 客户端,它就可以工作。这不是唯一的事情......使用相同的site2site vpn但使用DBeaver或HeidiSQL我可以连接......我编写了一个简单的c#控制台应用程序来测试连接并且它正在工作。唯一的问题是 SMSS。我不知道为什么,但我对此很好奇:)

于 2022-02-22T11:26:11.990 回答