SQL 服务器端口转发

SQL Server port forwarding

我在我的服务器上将端口 1433 转发到 9082,防火墙设置为允许入站和出站,在 SQL Server Allow Remote 为 ON。

但是,我无法从客户端连接到我的 SQL 服务器。

我安装了 SQL Server 2012。

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. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)

首先尝试配置您的路由器。毕竟连接。顺便说一句,是否已经启用 TCP/IP @sql?确保为 sql 打开端口。

  1. 检查 sql 配置是否启用打开的连接
  2. 检查防火墙是否开启
  3. 检查路由器是否打开
  4. 检查连接是否滞后(如果有网络)。本地不需要
  5. 确保 sql 浏览器和代理 运行(对于 xp,如果不是 xp,只需启用 sql 浏览器)
  6. 如果不是全部可能是你安装错了。如果网络工作安装 local/system。不是网络(这用于连接@server 集群)

首先检查 ERRORLOG 中 SQL 服务器使用的端口(不能保证它将始终侦听 1433,或者是否启用了 TCP)。

在启动时的ERRORLOG中,你会发现这样一行:

在我的例子中,端口确实是 1433,但你的可能不同。如果需要,您可以使用 SQL 服务器配置管理器更改它。

其次,如果您将一个端口转发到另一个端口(例如您从 1433 到 9082 的示例),您实际上是在禁用 SQL 服务器浏览器。发生这种情况是因为 SQL Server Browser 不知道您的端口转发,因此它会告诉客户端连接到 1433(假设您允许 UDP 1434,否则您将无法访问 SQL Server Browser完全没有)。

您可以在不使用 SQL 服务器浏览器的情况下连接到 SQL 实例,但您需要的只是在连接字符串中指定端口(没有实例名称,如果有的话)。

例如,如果您的实例名为 MYSERVER/INST,您的连接字符串将类似于:

User ID=*****;Password=*****;server=tcp:MYSERVER,9082

还要确保手动配置您的 SPN,否则 Kerberos 将无法工作。

您可以在此处找到有关如何编写正确连接字符串的更多详细信息:SqlConnection.ConnectionString Property

使用 Microsoft SQL Server Management Studio 连接到 MS SQL 服务器问题的解决方案(如果您的端口被转发)

我也有这个问题。这几天一直困扰着我。最后我偶然发现了这个页面上的解决方案,所以我将它排除在屏幕截图之外:

它不像所有其他系统那样 :,您必须输入 ,