本文介绍如何排查 SMB 连接期间传输控制协议(TCP)三向握手失败的问题。
分析网络跟踪时,你会注意到发生 TCP 三向握手失败,导致 SMB 问题发生。
通常情况下,原因是本地防火墙或基础结构防火墙阻止了流量。 在以下任一情况下都可能出现此问题。
TCP SYN 数据包到达 SMB 服务器,但 SMB 服务器不会返回 TCP SYN-ACK 数据包
若要对此方案进行故障排除,请执行以下步骤:
运行
netstat
或Get-NetTcpConnection
确保 TCP 端口 445 上有一个侦听器,该侦听器应该归 SYSTEM 进程所有。netstat -ano | findstr :445
Get-NetTcpConnection -LocalPort 445
确保服务器服务已启动并运行。
执行 Windows 筛选平台 (WFP) 捕获来确定哪个规则或程序正在丢弃流量。 为此,请在命令提示符窗口中运行以下命令:
netsh wfp capture start
重现此问题,然后运行以下命令:
netsh wfp capture stop
运行方案跟踪,查找 SMB 流量中的 WFP 丢弃(在 TCP 端口 445 上)。
(可选)你可以删除防病毒程序,因为它们并不总是基于粮食计划署。
如果启用了 Windows 防火墙,请启用防火墙日志记录,以决定它是否记录流量丢弃。
确保在“高级安全 Windows 防火墙”>“入站规则”中启用相应的“文件和打印机共享 (SMB-In)”规则。
注意
“Windows 防火墙”可能称为“Windows Defender 防火墙”,具体取决于你的计算机的设置情况。
TCP SYN 数据包永远不会到达 SMB 服务器
在此情况中,你必须调查网络路径上的设备。 你可以分析每个设备上捕获的网络跟踪,以确定哪个设备正在阻止流量。