SQL Server端口转发

时间:2016-11-26 16:29:39

标签: sql-server portforwarding

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

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

我安装了SQL Server 2012。

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:SQL网络接口,错误:25 - 连接字符串无效)

3 个答案:

答案 0 :(得分:3)

首先在ERRORLOG中检查SQL Server使用的端口(不保证它将始终在1433上侦听,或者根本不启用TCP)。

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

enter image description here

在我的情况下,港口确实是1433,但你的可能会有所不同。如果需要,可以使用SQL Server配置管理器进行更改。

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

您可以在不使用SQL Server浏览器的情况下连接到SQL实例,但您只需在连接字符串中指定端口(不包含实例名称)。

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

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

另外,请确保手动配置SPN,否则Kerberos将无法正常工作。

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

答案 1 :(得分:2)

如果转发了端口,则解决了使用Microsoft SQL Server Management Studio连接到MS SQL Server的问题

我也有这个问题。几天来一直困扰着我。最后,我偶然发现了此页面上的解决方案,因此我将其排除为屏幕截图:

connecting to MS SQL server with Microsoft SQL Server Management Studio if your port is forwarded

与其他系统不同,它不是:,您必须放置,

答案 2 :(得分:0)

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

  1. 检查sql配置是否启用以进行打开连接
  2. 检查防火墙是否打开
  3. 检查路由器是否打开
  4. 检查连接延迟与否(如果是网络)。当地没有必要
  5. 确保sql浏览器和代理运行(对于xp,如果不是xp,则只启用sql浏览器)
  6. 如果不是全部可能你的安装错误。如果用于网络工作安装本地/系统。不是网络(这是为了附加@server集群)