- Протокол SMB для расширенного устранения неполадок Advanced Troubleshooting Server Message Block (SMB)
- Средства и сбор данных Tools and data collection
- Сбор данных Collect data
- Использование NetShell для получения данных Using netshell to collect data
- Анализ трафика Analyze the traffic
- Анализ протокола Analyze the protocol
- Журналы событий Event logs
- Системные файлы, связанные с SMB SMB-related system files
- Обновление предложений Update suggestions
- SMB Windows 10: настройка и как включить SMB1 и SMB2
- Включения SMB1 на Windows 10
- Проверка настроек
- Включение SMB2
- Ничего не помогло, папку или компьютер не видно, ничего не работает
Протокол SMB для расширенного устранения неполадок Advanced Troubleshooting Server Message Block (SMB)
SMB — это протокол сетевого транспорта для операций с файловыми системами, позволяющий клиенту получать доступ к ресурсам на сервере. Server Message Block (SMB) is a network transport protocol for file systems operations to enable a client to access resources on a server. Основной целью протокола SMB является обеспечение удаленного доступа файловой системы между двумя системами по протоколу TCP/IP. The primary purpose of the SMB protocol is to enable remote file system access between two systems over TCP/IP.
Устранение неполадок SMB может быть чрезвычайно сложным. SMB troubleshooting can be extremely complex. Эта статья не является исчерпывающим руководством по устранению неполадок, а представляет собой краткое руководство по эффективному устранению неполадок SMB. This article is not an exhaustive troubleshooting guide Instead, it is a short primer to understand the basics of how to effectively troubleshoot SMB.
Средства и сбор данных Tools and data collection
Одним из ключевых аспектов устранения неполадок качества SMB является связь с правильной терминологией. One key aspect of quality SMB troubleshooting is communicating the correct terminology. Поэтому в этой статье рассматривается Базовая терминология SMB для обеспечения точности сбора и анализа данных. Therefore, this article introduces basic SMB terminology to ensure accuracy of data collection and analysis.
SMB-сервер (SRV) относится к системе, в которой размещается файловая система, также известная как файловый сервер. The SMB Server (SRV) refers to the system that is hosting the file system, also known as the file server. Клиент SMB (CLI) относится к системе, которая пытается получить доступ к файловой системе, независимо от версии или выпуска операционной системы. The SMB Client (CLI) refers to the system that is trying to access the file system, regardless of the OS version or edition.
Например, если вы используете Windows Server 2016 для доступа к общему ресурсу SMB, размещенному в Windows 10, Windows Server 2016 является SMB-клиентом и Windows 10 сервером SMB. For example, if you use Windows Server 2016 to reach an SMB share that is hosted on Windows 10, Windows Server 2016 is the SMB Client and Windows 10 the SMB Server.
Сбор данных Collect data
Прежде чем устранять неполадки SMB, рекомендуется сначала получить трассировку сети на стороне клиента и сервера. Before you troubleshoot SMB issues, we recommend that you first collect a network trace on both the client and server sides. Применяются следующие правила. The following guidelines apply:
В системах Windows для получения трассировки сети можно использовать NetShell (Netsh), сетевой монитор, средство анализа сообщений или Wireshark. On Windows systems, you can use netshell (netsh), Network Monitor, Message Analyser, or Wireshark to collect a network trace.
Сторонние устройства обычно имеют встроенное средство записи пакетов, например tcpdump (Linux/FreeBSD/UNIX) или пктт (NetApp). Third-party devices generally have an in-box packet capture tool, such as tcpdump (Linux/FreeBSD/Unix), or pktt (NetApp). Например, если клиент SMB или SMB-сервер является узлом UNIX, можно получить данные, выполнив следующую команду: For example, if the SMB client or SMB server is a Unix host, you can collect data by running the following command:
Останавливает сбор данных с клавиатуры с помощью клавиш CTRL + C . Stop collecting data by using Ctrl+C from keyboard.
Чтобы обнаружить источник проблемы, можно проверить двустороннюю трассировку: CLI, SRV или другое. To discover the source of the issue, you can check the two-sided traces: CLI, SRV, or somewhere in between.
Использование NetShell для получения данных Using netshell to collect data
В этом разделе содержатся инструкции по использованию NetShell для получения трассировки сети. This section provides the steps for using netshell to collect network trace.
Команда netsh trace создает ETL-файл. A Netsh trace creates an ETL file. ETL-файлы можно открывать только в анализаторе сообщений (MA) и сетевой монитор 3,4 (Настройка средства синтаксического анализа для сетевой монитор > окон анализаторов). ETL files can be opened only in Message Analyzer (MA) and Network Monitor 3.4 (set the parser to Network Monitor Parsers > Windows).
На сервере SMB и клиенте SMB создайте временную папку на диске C. Затем выполните следующую команду: On both the SMB server and SMB client, create a Temp folder on drive C. Then, run the following command:
Если вы используете PowerShell, выполните следующие командлеты: If you are using PowerShell, run the following cmdlets:
Воспроизведите проблему. Reproduce the issue.
Завершите трассировку, выполнив следующую команду: Stop the trace by running the following command:
Если вы используете PowerShell, выполните следующие командлеты: If you are using PowerShell, run the following cmdlets:
Следует отслеживать только минимальный объем передаваемых данных. You should trace only a minimum amount of the data that’s transferred. При возникновении проблем с производительностью всегда следует использовать как хорошую, так и неверную трассировку, если такая ситуация разрешена. For performance issues, always take both a good and bad trace, if the situation allows it.
Анализ трафика Analyze the traffic
SMB — это протокол уровня приложения, который использует протокол TCP/IP в качестве сетевого транспортного протокола. SMB is an application-level protocol that uses TCP/IP as the network transport protocol. Поэтому проблема с SMB также может быть вызвана проблемами TCP/IP. Therefore, an SMB issue can also be caused by TCP/IP issues.
Проверьте, не возникают ли в TCP/IP какие-либо из следующих проблем. Check whether TCP/IP experiences any of these issues:
TCP-это трехстороннее подтверждение не завершается. The TCP three-way handshake does not finish. Обычно это означает, что имеется блок брандмауэра или служба сервера не запущена. This typically indicates that there is a firewall block, or that the Server service is not running.
Происходит повторная передача. Retransmits are occurring. Это может вызвать медленную передачу файлов из-за составного регулирования перегрузки TCP. These can cause slow file transfers because of compound TCP congestion throttling.
Пять повторных передач, за которыми следует сброс TCP, могут означать, что подключение между системами было потеряно или что произошел сбой или зависание одной из служб SMB. Five retransmits followed by a TCP reset could mean that the connection between systems was lost, or that one of the SMB services crashed or stopped responding.
Окно приема TCP уменьшается. The TCP receive window is diminishing. Это может быть вызвано снижением размера хранилища или какой-либо другой проблемой, которая не позволяет получить данные из буфера Winsock вспомогательной функции (АФД). This can be caused by slow storage or some other issue that prevents data from being retrieved from the Ancillary Function Driver (AFD) Winsock buffer.
Если нет заметной проблемы TCP/IP, проверьте наличие ошибок SMB. If there is no noticeable TCP/IP issue, look for SMB errors. Для этого выполните следующие действия. To do this, follow these steps:
Всегда проверяйте ошибки SMB по спецификации протокола MS-SMB2. Always check SMB errors against the MS-SMB2 protocol specification. Многие ошибки SMB являются небезопасными (неопасными). Many SMB errors are benign (not harmful). Ознакомьтесь со следующими сведениями, чтобы определить причину, по которой SMB возвращала ошибку, прежде чем вы завершите, что эта ошибка связана с одной из следующих проблем. Refer to the following information to determine why SMB returned the error before you conclude that the error is related to any of the following issues:
В разделе синтаксис сообщений MS-SMB2 описывается каждая команда SMB и ее параметры. The MS-SMB2 Message Syntax topic details each SMB command and its options.
В разделе об обработке клиента MS-SMB2 описывается, как клиент SMB создает запросы и реагирует на сообщения сервера. The MS-SMB2 Client Processing topic details how the SMB client creates requests and responds to server messages.
В разделе обработка сервера MS-SMB2 описывается, как SMB-сервер создает запросы и отвечает на запросы клиентов. The MS-SMB2 Server Processing topic details how the SMB server creates requests and responds to client requests.
Проверьте, отправляет ли команда TCP Reset сразу после _ команды фсктл Validate _ _ info (проверка согласованности). Check whether a TCP reset command is sent immediately after an FSCTL_VALIDATE_NEGOTIATE_INFO (validate negotiate) command. Если это так, см. следующие сведения: If so, refer to the following information:
Сеанс SMB должен быть завершен (Сброс TCP), когда процесс проверки согласованности завершается сбоем на клиенте или сервере. The SMB session must be terminated (TCP reset) when the Validate Negotiate process fails on either the client or the server.
Этот процесс может завершиться ошибкой, так как оптимизатор глобальной сети изменяет пакет согласования SMB. This process might fail because a WAN optimizer is modifying the SMB Negotiate packet.
Если соединение преждевременно завершилось, выявление последнего обмена данными между клиентом и сервером. If the connection ended prematurely, identify the last exchange communication between the client and server.
Анализ протокола Analyze the protocol
Просмотрите фактические сведения о протоколе SMB в трассировке сети, чтобы понять, какие именно команды и параметры используются. Look at the actual SMB protocol details in the network trace to understand the exact commands and options that are used.
Только анализатор сообщений может анализировать команды SMBv3 и более поздних версий. Only Message Analyzer can parse SMBv3 and later version commands.
Помните, что SMB выполняет только то, что ему нужно. Remember that SMB does only what it is told to do.
Вы можете узнать о том, что пытается сделать приложение, изучив команды SMB. You can learn a lot about what the application is trying to do by examining the SMB commands.
Сравните команды и операции со спецификацией протокола, чтобы убедиться, что все работает правильно. Compare the commands and operations to the protocol specification to make sure that everything is operating correctly. Если это не так, собирайте данные, расположенные ближе или на более низком уровне, для поиска дополнительных сведений о основной причине. If it is not, collect data that is closer to or at a lower level to look for more information about the root cause. Для этого выполните следующие действия. To do this, follow these steps:
Сбор данных о стандартной записи пакетов. Collect a standard packet capture.
Выполните команду netsh , чтобы выполнить трассировку и сбор сведений о наличии проблем в сетевом стеке или удалении приложений платформы фильтрации Windows (WFP), таких как брандмауэр или антивирусная программа. Run the netsh command to trace and gather details about whether there are issues in the network stack or drops in Windows Filtering Platform (WFP) applications, such as firewall or antivirus program.
Если все остальные параметры завершаются неудачно, собирайте t. cmd, если вы считаете, что проблема возникает в самом SMB, или если нет других данных, достаточных для идентификации основной причины. If all other options fail, collect a t.cmd if you suspect that the issue occurs within SMB itself, or if none of the other data is sufficient to identify a root cause.
Например. For example:
Скорость передачи файлов на один файловый сервер наблюдается. You experience slow file transfers to a single file server.
Двухсторонние трассировки показывают, что SRV медленно реагирует на запрос чтения. The two-sided traces show that the SRV responds slowly to a READ request.
Удаление антивирусной программы разрешает передачу файлов с задержкой. Removing an antivirus program resolves the slow file transfers.
Чтобы устранить эту проблему, обратитесь к антивирусной программе мануфактори. You contact the antivirus program manufactory to resolve the issue.
При необходимости вы также можете временно удалить антивирусную программу во время устранения неполадок. Optionally, you might also temporarily uninstall the antivirus program during troubleshooting.
Журналы событий Event logs
Как клиент SMB, так и SMB-сервер имеют подробную структуру журнала событий, как показано на следующем снимке экрана. Both SMB Client and SMB Server have a detailed event log structure, as shown in the following screenshot. Собирайте журналы событий, чтобы помочь найти основную причину проблемы. Collect the event logs to help find the root cause of the issue.
Системные файлы, связанные с SMB SMB-related system files
В этом разделе перечислены системные файлы, связанные с SMB. This section lists the SMB-related system files. Чтобы обеспечить обновление системных файлов, убедитесь, что установлен последний накопительный пакет обновления . To keep the system files updated, make sure that the latest update rollup is installed.
Двоичные файлы клиента SMB, перечисленные в разделе % WINDIR% \ \ драйверы system32: SMB Client binaries that are listed under %windir%\system32\Drivers:
Двоичные файлы SMB Server, указанные в разделе % WINDIR% \ \ драйверы system32: SMB Server binaries that are listed under %windir%\system32\Drivers:
В папке % WINDIR% \ system32 Under %windir%\system32
Обновление предложений Update suggestions
Перед устранением проблем с SMB рекомендуется обновить следующие компоненты: We recommend that you update the following components before you troubleshoot SMB issues:
Файловый сервер требует наличия хранилища файлов. A file server requires file storage. Если в хранилище есть компонент iSCSI, обновите эти компоненты. If your storage has iSCSI component, update those components.
Обновите сетевые компоненты. Update the network components.
Для повышения производительности и стабильности обновите Windows Core. For better performance and stability, update Windows Core.
SMB Windows 10: настройка и как включить SMB1 и SMB2
Всем привет! Сегодня столкнулся с такой проблемой. При построении локальной сети с двумя компьютерами первый (Windows 10) наотрез отказывается видеть другой комп (Windows 7). Все настройки я произвел правильно и открыл общий доступ. Но как потом оказалось, вся проблема в специальном сетевом протоколе SMB 1. Дело в том, что это старый протокол, который работает на олдскульных ОС. И он есть в десятке, но на последних обновлениях операционной системы Microsoft решила его отключить (во имя безопасности).
Симптомы достаточно простые. Вы выполнили все нужные настройки, заходите в раздел сети, а там ничего кроме вашего маршрутизатора не отображается. Бывает такое, что компьютер вы видите, и даже можете на него зайти, но вот при попытке открыть расшаренную папку можно лицезреть вот такое вот сообщение:
«Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который не безопасен и может подвергнуть вашу систему риску атаки.»
Может быть еще вот такой текст ошибки: «Не удалось выполнить сопоставление сетевого диска из-за следующей ошибки». Ну и дальше все в том же духе.
Кстати, некоторые старые роутеры, также исползают устаревший SMB1 протокол – поэтому если у вас еще наблюдается проблема с доступом к жесткому диску или флешке, которые подключены к роутеру, то дальнейшие инструкции вам также будут полезны. Что мы будем делать? – нам нужно просто включить протокол SMBv1, и проблема будет решена. Поехали!
Включения SMB1 на Windows 10
Открываем меню «Пуск» и в поисковой строке вводим «Включение и отключение компонентов Windows». Можете просто ввести не полное слово «компонент». Вы также можете зайти туда через «Панель управления» (нажимаем кнопки «Win» и «R» – вводим команду: control). Далее заходим в «Программы и компоненты» и слева выбираем тот же самый пункт с отключением и включением компонентов.
Находим раздел с упоминанием нашего любимого протокола и включаем в папке все галочки. В самом конце нажимаем «ОК», чтобы изменения были приняты.
После этого SMB-1 в Windows 10 будет включено, и проблемы с сетью возникнуть не должны. Я бы на всякий случай перезагрузил компьютер. Но если вы все равно не видите какой-то компьютер в сети, или есть проблемы с доступом, смотрим следующую главу.
Проверка настроек
Нам нужно посмотреть настройки общего доступа и есть ли они у вас вообще.
- В «Пуске» нажмите по шестеренке.
- Заходим в раздел «Сеть и Интернет».
- Тут же на первой странице (вкладка «Состояние») откройте «Свойства» того подключения, которое вы используете для коннекта с роутером. Если вы подключены по кабелю, то выбираем «Ethernet», если вы подключены по «Wi-Fi», то выбираема второе подключение. На старых версиях нужно открыть ссылку «Изменить свойства подключения».
- Убедитесь, чтобы тип сетевого профиля был как «Частный». Вернитесь обратно, нажав по стрелки влево.
- Пролистните чуть ниже и откройте «Центр управления сетями…». Этот раздел может также называться как «Параметры общего доступа». Поэтому можете ориентироваться по значку или найти раздел со словами «Общий доступ».
- Слева выбираем третий пункт для изменения параметров.
- Так как мы уже изменили текущий профиль на частный, то открываем его.
- Теперь открываем раздел «Все сети» и включаем сетевое обнаружение для папок. Шифрование должно стоять в нужной позиции, но если это не так, то включите 128-и битное шифрование. Обязательно отключите параметр, который будет запрашивать у вас пароль при заходе в общую папку или при запросе к этому компьютеру.
- В самом конце сохраняем изменения.
Включение SMB2
Сначала давайте проверим статус SMBv2. Для это откройте «PowerShell» с правами админа, нажав ПКМ по кнопке «Пуск».
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Если вы видите значение «True», то значит протокол работает. Если стоит значение «False», то включить параметр можно также с помощью команды:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
ПРИМЕЧАНИЕ! Таким же образом можно включить или выключить SMB1 – просто замените в команде одну цифру (2 на 1).
Далее кликаем по «Y» и на «Enter», чтобы подтвердить свои действия. Если же вы хотите отключить SMB2, то вместо «true» ставим «false». В конце не забываем перезагрузить систему.
Ничего не помогло, папку или компьютер не видно, ничего не работает
Если проблема остается, то есть несколько вариантов – от неправильных сетевых настроек до проблем с некоторыми службами в самой операционной системе. Все решения я уже описал в отдельной статье, и с ней вы можете ознакомиться по этой ссылке. То, что описано там, должно помочь.