远程连接 SQL 服务器不工作,但如果禁用防火墙它可以工作吗?

远程连接 SQL 服务器不工作,但如果禁用防火墙它可以工作吗?

我在 Windows 2008 服务器上设置了 SQL Server Express 2008。并且我在 SQL 中完成了所有标准操作以允许远程连接。奇怪的是,如果我禁用 Windows 2008 Server 防火墙,它就可以正常工作。

我在服务器防火墙上打开了 1433 端口。并且启用了 tcp,还有其他我不知道的端口吗?我还打开了 1434...

在 TCP 属性下,我已为 ip 启用了 tcp(当然这部分必须正常工作,因为如果我禁用防火墙它就可以工作),并且端口号留空,动态端口为 0

我尝试将端口号设置为 1434 并将动态端口设置为空白。

还是没有喜悦。

我已经运行了 SQL 浏览器服务器并命名了管道。

我正在从没有防火墙的个人电脑通过 Sql 管理工作室运行测试。

我肯定错过了什么

非常感谢任何人提供的帮助..我被困住了

谢谢

答案1

可能你忘记执行这个命令:

 netsh firewall set portopening TCP 1433 "SQLServer" 

您可以尝试此 Microsoft 支持文章中的新“修复”功能:如何在 Windows Server 2008 上打开 SQL Server 的防火墙端口?

该页面还包含一个脚本,如果您不需要 SQL Service Broker、调试器、https 等,请删除这些行。

@echo =========  SQL Server Ports  ===================
@echo Enabling SQLServer default instance port 1433
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Enabling Dedicated Admin Connection port 1434
netsh firewall set portopening TCP 1434 "SQL Admin Connection" 

...

netsh firewall set portopening UDP 1434 "SQL Browser" 
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)
netsh firewall set multicastbroadcastresponse ENABLE 

答案2

您是否尝试过将可执行文件指定为 Windows 防火墙中的例外?就在本周末,我按照这些步骤设置了自己的 Win 2008 和 SQL 2008 计算机,一切运行正常。此过程不涉及任何端口号。可以毫无问题地从 Sql Management Studio 远程访问此实例。

  • 开始->运行->firewall.cpl
  • 允许程序通过 Windows 防火墙
  • 点击“添加程序”按钮,然后浏览
  • 添加这两个可执行文件:
C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\SqlServer.exe      
C:\Program Files\Microsoft SQL Server\90\Shared\SqlBrowser.exe

答案3

请使用 Microsoft 的这篇文章仔细检查您的设置:配置 Windows 防火墙以允许 SQL Server 访问。假设您没有使用命名实例,则打开端口 1433 以进行入站连接应该可以做到这一点。无论如何,请查看文章,您可能会发现您错过了一步。

答案4

我会检查 SQL Server 是否强制使用 1433,否则它可能会使用“动态端口”。打开 Sql Server 配置管理器 > Sql Server 网络配置 > TCP/IP > 属性 > 我设置的 IP 地址:* TCP 动态端口:* TCP 端口:1433

相关内容