【问题标题】:Cannot connect to SQL Server remotely: Network Interface Error 26无法远程连接到 SQL Server:网络接口错误 26
【发布时间】:2019-11-19 23:41:10
【问题描述】:

今天我尝试启用与物理上位于不同国家/地区的 SQL Server 的远程连接。我确实可以通过远程桌面访问它,但是我无法通过本地 SQL Server Management Studio 客户端进行连接。我收到一个网络错误,指出服务器未找到或无法访问(网络接口错误 26)。

我已经尝试了以下方法:

  • 在 SQL Server Management Studio 中启用“允许远程连接到此服务器”
  • 确保 SQL Server 服务正在运行
  • 确保输入了正确的服务器名称。
  • 在 SQL Server 配置管理中启用 TCP/IP 协议和命名管道(并在 TCP/IP 属性上建立端口 1433,因为它设置为 56733)
  • 为 Windows 防火墙创建了一个规则,允许通过端口 1433 和服务 sqlserver.exe 进行通信(TCP 和 UDP,允许来自任何地方的连接)
  • 通过 SQL Server 和控制面板 > 服务屏幕重新启动服务

服务器名称的结构为ServerName\InstanceName,我可以使用 SQL Server 和 Windows 身份验证登录。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 查看 SQL 错误日志以确保它正在侦听您期望的 IP 和端口,并使用 powershell 从远程客户端进行测试:PS C:\> test-netconnection -Port 1433 -ComputerName ServerName

标签: sql-server connection firewall


【解决方案1】:

如果您有一个命名实例,即 SERVER\INSTANCE,那么它不太可能位于 1433 上。它将是一个动态端口并使用 SQL 浏览器服务。

是否仍设置为动态端口(即默认端口)?如果是这样,是否也允许 1434?

1433 上还有其他内容吗? (即默认实例)?

您是否尝试过直接连接到 IP 地址和端口?即 x.x.x.x,端口

【讨论】:

  • 直接试IP+端口有效!我只需要在 TCP/IP 属性选项卡中禁用除一个 IP 之外的所有 IP(仅启用具有我用来连接的 IP 的 IP)。但是我仍然无法使用服务器/实例组合登录。
  • SERVER\INSTANCE 需要两件事。您需要 SERVER 才能使用 DNS 正确解析。然后客户端向端口 1434 发送 UDP 请求。(也必须打开)如果浏览器服务正在运行,那么它会告诉客户端服务器实例在哪个端口上。
  • 我更喜欢(很长一段时间)是在应用程序配置中使用特定名称(即类似 HRServer 而不是 SERVER\INSTANCE),然后使用 SQL 客户端别名将其映射到服务器是。然后你的应用程序对此一无所知。但是,别名只是每个客户端上的一个注册表项。如果我们这样做,我们会使用组策略推出别名。
  • 如果您的实例在 1433 上,则根本不需要 SERVER\INSTANCE,您可以使用 SERVER,因为 1433 是默认端口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多