Windows防火墙丢弃数据包

时间:2017-09-07 21:22:29

标签: sql-server windows-firewall

我遇到了一些奇怪的行为,试图配置高可用性的远程桌面连接代理方案。我使用的是Windows 2016和SQL Server 2016客户端连接工具(SQL Server Native Client 11.0)。

在配置期间,它需要一个SQL Server连接字符串,我已将其三重检查为正确。配置时,它找不到SQL Server。我已将问题隔离到Windows防火墙,这是我发现的:

禁用防火墙服务:正常工作 防火墙服务已启用,但防火墙已关闭:不起作用 防火墙服务已启用,防火墙已打开:不起作用 启用防火墙服务,启用防火墙,允许所有流量的异常:不起作用。

这似乎只影响使用命名的SQL实例。如果我使用默认实例,则没有问题。在防火墙上启用了日志记录后,我可以看到以下内容:

  

2017-09-06 13:28:01 DROP UDP 10.59.128.18 10.59.28.217 49577 1434 0 - - - - - - - 发送

如果我在尝试此操作时在Microsoft网络监视器上运行捕获,则在防火墙开启且配置了异常时,它不会在端口1434上显示任何流量。如果我禁用防火墙服务,网络监视器确实会在1434上显示流量。

我做的另一项测试是将防火墙重置为默认值并验证没有拒绝发生的地方。正如预期的那样,我注意到日志中丢失了大量数据包。当添加允许所有规则时,所有这些丢弃的数据包将被允许除了通过1434的那些。我发现的每篇文章都解释了在Windows防火墙中打开端口,这已经完成了。

我还尝试使用当前分配的SQL实例的动态端口连接字符串并且它工作正常,但这不是解决方案,因为动态端口将发生变化。

1 个答案:

答案 0 :(得分:0)

我通过在客户端计算机上禁用SQL Native Client上的命名管道协议解决了这个问题。