连接 Server 2008 共享失败

连接 Server 2008 共享失败

(这篇文章已经变得相当冗长,但希望能为遇到此问题的其他人提供一个尝试方法的总结——从表面上看,这不是一个简单的一刀切的解决方案;在答案中也可以找到其他解决方案或调查途径)。

我在 x64 Server 2008 R1 SP1 服务器上无法获得可靠的共享。

重启后一切正常,但一段时间后(一天之内)共享对 XP 和 Server 2003 服务器不可用。有趣的是,它们对其他 Server 2008 服务器仍然可用。

尝试访问时\\server\share,Server 2003 立即返回并只向我显示消息“指定的网络名称不再可用”,XP 需要一两分钟才能超时,然后才显示相同的消息。事件日志中似乎没有任何内容表明存在问题。

在过去一两天里,我通过谷歌搜索发现,有以下指责:

  • 网络驱动程序不好(Broadcom [我们使用的 HP 服务器就是用的这种驱动程序] 似乎有几次被提及不稳定)... 我已经更新到最新的驱动程序,但没有任何效果(参见参考文献 1 和 2)
  • 赛门铁克防病毒软件...我们没有使用它(目前服务器上没有 AV)(参见参考文献 1 和 3)
  • 接收窗口自动调整...我已禁用和netsh int tcp set global autotuninglevel=disablednetsh int tcp set global rss=disabled参见参考文献 4)

这些都没有任何效果。Windows 防火墙目前已被禁用。

由于其他 Server 2008 机器(x32 和 x64)都可以连接,我只能假设有一些新的安全配置不太正确 - 或者存在 AD 问题,我需要跟踪,但不知道从哪里开始。即使有人不知道如何解决,如果有人知道我需要用 Wireshark 查找什么,这也会有所帮助。

编辑... 我打开了 Wireshark 跟踪(仅按目标主机过滤),我看到的是客户端(在本例中为 Server 2003)向 Server 2008 发送了一条 SMB“协商协议请求”消息,但是没有从服务器收到“协商协议响应”。客户端会重试,直到超时。但请注意,服务器正在积极响应会话请求。这是完整的事件序列:

C -> S  NBSS Session Request
S -> C  NBSS Positive Session Response
C -> S  SMB  Negotiate Protocol Request
[no response; time passes].
C -> S  NBSS Session Request
S -> C  NBSS Positive Session Response
C -> S  SMB  Negotiate Protocol Request
[no response; time passes].
[repeat]

编辑2... 从 Server 2008 客户端对 SMB 连接进行 Wireshark 显示正在发送协商协议响应,但使用 SMBv2:

C -> S  NBSS Session Request
S -> C  NBSS Positive Session Response
C -> S  SMB  Negotiate Protocol Request
S -> C  SMB2 NegotiateProtocol Response
C -> S  SMB2 SessionSetup Request
S -> C  SMB2 SessionSetup Response
[then the conversation contines, bringing the share back]

我将尝试在 2k8 服务器上禁用 SMBv2(按照petri.co.il 上的这些说明) 看看是否有帮助 - 然后应该强制服务器在任何地方使用 SMB1。

编辑3...我还发现Microsoft Technet 论坛上的这篇文章(“Windows 2008 不断断开共享 + Outlook 2007 不断与 Exchange 2007 断开连接”[原文如此]),其他人建议检查 TCP Offload Chimney 配置。不过目前禁用了 SMB2(参见上面的 EDIT2),目前情况似乎还好 - 上周五禁用 SMB2 后,共享尚未消失。快速谷歌搜索发现其他人(MS Technet 论坛“Server 2008 共享上的文件打开问题。”)发现禁用 SMB2 也是一个解决方案。我会让这个问题再持续几天,然后再自行回答并关闭这个问题。


参考...
(1)微软网络团队 -各种客户端与 Windows Server 2008 服务器之间的文件共享连接不稳定
(2)424help.com -Windows 2008 Server网络连接问题
(3)赛门铁克 AVForums -MR3 锁定 Server 2008 文件共享
(4)新闻组 -Server 2008 R2 文件共享访问在高负载下失败(也在各种网络论坛上出现,例如 techarena、eggheadcafe 等)

答案1

在捕获中,将数据包长度添加到显示的列中,并按该列排序。您是否有任何大于正常以太网帧的帧?(我认为是 1514)。如果可能,您应该从服务器进行此捕获。或者在镜像服务器交换机端口的交换机端口上进行捕获。

答案2

自从禁用 SMB2 以来已经过去了将近一周的时间(请参阅问题中的 EDIT2),从那时起共享一直很稳定。作为参考,服务器配置如下:

  • 最新网络驱动程序(适用于 HP NC373i)
  • 接收窗口自动调节已禁用(详情请参阅问题)
  • SMB2 已禁用(通过注册表)

我可能会重新启用接收窗口自动调整,但由于这是一个活动系统,这可能不会很快发生:我现在不去管它,因为如果没有坏,就不要修理它

如果其他人遇到类似的问题,解决方案可能会有所不同(请参阅该问题的其余部分) - 但禁用 SMB2 最终解决了我的情况。

另外,通过快速谷歌搜索似乎可以发现通过禁用 SMB2 可以解决的其他问题,包括(简短的标题直接来自 MSDN KB):

希望这些对其他人有帮助:-)

编辑 - 2014 年 5 月... 多年后。微软最近发布了一篇知识库文章如果使用 SMB v1 协议访问共享文件,Windows 会停止响应针对 Server 2008,文档中记录了问题可能“由于 Mrxsmb10.sys 驱动程序死锁而发生”,并提供了修补程序。问题尚未在这里重新出现,因此我不会应用 - 但是细节听起来像我上面的经验。如果它对其他人有用,我会将其包含在答案中。

相关内容