Поделиться через


Tcp-подключение прервано во время проверки согласования

В трассировке сети для проблемы SMB вы заметили, что во время процесса проверки согласования произошло прерывание сброса TCP. В этой статье описывается устранение неполадок в этой ситуации.

Причина

Эта проблема может быть вызвана неудачной проверкой согласования. Обычно это происходит из-за того, что акселератор глобальной сети изменяет исходный пакет SMB Negotiate.

Корпорация Майкрософт больше не разрешает изменение пакета Validate Negotiate по какой-либо причине. Это связано с тем, что такое поведение создает серьезную угрозу безопасности.

К пакету Validate Negotiate применяются следующие требования:

  • Процесс Проверки согласования использует FSCTL_VALIDATE_NEGOTIATE_INFO команду .
  • Ответ Проверить согласование должен быть подписан. В противном случае подключение прервано.
  • Чтобы убедиться, что ничего не было изменено, следует сравнить FSCTL_VALIDATE_NEGOTIATE_INFO сообщения с сообщениями Negotiate.

Обходной путь

Вы можете временно отключить процесс проверки согласования. Для этого найдите следующий подраздел реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters

В разделе Параметры установите для параметра RequireSecureNegotiate значение 0.

В Windows PowerShell можно выполнить следующий командлет, чтобы задать это значение:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" RequireSecureNegotiate -Value 0 -Force

Примечание.

Процесс проверки согласования нельзя отключить в Windows 10, Windows Server 2016 или более поздних версиях Windows.

Если клиент или сервер не могут поддерживать команду Проверить согласование, эту проблему можно обойти, задав обязательное подписывание SMB. Подписывание SMB считается более безопасным, чем Проверка согласования. Однако, если требуется подписывание, производительность также может быть снижена.

Справочные материалы