Linux не видит общие папки Windows: Решение проблемы с SMB

Проблема, когда компьютер под управлением Linux не отображает общие папки Windows в локальной сети — классическая и очень распространённая. Часто её пытаются решить устаревшими и небезопасными методами. В этом руководстве мы разберём истинные причины неполадок и предоставим безопасные и современные способы настройки корректного взаимодействия между системами.

Скриншот файлового менеджера Linux (Dolphin/Nautilus) с пустым разделом «Сеть» (Network)
Типичная проблема: в сетевом окружении Linux не отображаются компьютеры Windows

Шаг 1: Диагностика и понимание проблемы

Прежде чем вносить изменения, необходимо понять суть проблемы. С выходом Windows 10/11 и Samba 4.11+ стандарты взаимодействия изменились.

Что чаще всего происходит?

  1. В файловом менеджере Linux (Nautilus, Dolphin, Thunar) в разделе «Сеть» (Network) не отображаются компьютеры Windows.

  2. При попытке подключиться к Windows-серверу по адресу smb://IP_АДРЕС может возникать ошибка аутентификации или «Connection refused».

Почему так происходит? Основные причины:

  • Отказ от устаревшего SMB1: Windows 10/11 по умолчанию отключает небезопасный протокол SMB1. Более новые версии Samba (пакет, обеспечивающий доступ к файлам Windows в Linux) также отключают его поддержку.

  • Настройки сетевого обнаружения в Windows: Часто в Windows по умолчанию отключено сетевое обнаружение для «общественных» сетей.

  • Различия в настройках рабочей группы: Рабочая группа (WORKGROUP) на Linux и Windows может не совпадать.

  • Правила брандмауэра: Брандмауэр Windows может блокировать входящие подключения по протоколам SMB.

Первое действие — проверка базовой связи:
Откройте терминал на Linux и попробуйте «пропинговать» компьютер с Windows по его IP-адресу:

ping 192.168.1.100

Если пинг не проходит — проблема на сетевом уровне (настройки IP, кабель, Wi-Fi). Если пинг проходит — проблема в настройках протокола SMB.

Шаг 2: Безопасное и правильное решение (Настройка SMB3)

Вместо того чтобы возвращать уязвимый SMB1, необходимо правильно настроить работу современных протоколов SMB2 и SMB3.

Часть А: Настройка Windows для работы с Linux

Скриншот раздела «Дополнительные параметры общего доступа» в панели управления Windows с включенными сетевым обнаружением и общим доступом
Шаг 1: В Windows необходимо включить сетевое обнаружение и общий доступ к файлам
  1. Включите сетевое обнаружение и общий доступ.

    • Перейдите в Панель управления > Центр управления сетями и общим доступом > Изменить дополнительные параметры общего доступа.

    • Для вашего сетевого профиля («Частная» сеть) включите:

      • Включить сетевое обнаружение

      • Включить общий доступ к файлам и принтерам

    • Отключите общий доступ с парольной защитой (для упрощения) или убедитесь, что учётная запись Windows, под которой вы заходите, имеет пароль.

  2. Убедитесь, что SMB1 отключён, а SMB2/SMB3 включён.

    • В Windows 10/11 это состояние по умолчанию. Проверить и изменить можно через «Включение или отключение компонентов Windows»: убедитесь, что SMB 1.0/CIFS File Sharing Support снят, а SMB Direct включен.

  3. Проверьте брандмауэр Windows.

    • Система должна разрешать входящие подключения для «File and Printer Sharing» в правилах для частной сети.

Часть Б: Настройка Linux для доступа к Windows

  • Установите необходимые пакеты (если их нет).
    Для Ubuntu/Debian и подобных:

    sudo apt update

    sudo apt install samba-client cifs-utils smbclient

Для дистрибутивов на базе Arch:

sudo pacman -S smbclient cifs-utils
  • Попробуйте обнаружить сетевые ресурсы с помощью smbclient.
    Выполните в терминале команду:
smbclient -L //IP_АДРЕС_WINDOWS -U ИМЯ_ПОЛЬЗОВАТЕЛЯ_WINDOWS

Пример:

smbclient -L //192.168.1.100 -U Alex

Вас попросят ввести пароль от учётной записи Windows. Если вы увидите список общих папок — протоколы работают корректно, и проблема, скорее всего, в сетевом обнаружении (мастер-браузере).

Скриншот терминала Linux с введенной командой smbclient -L и успешным выводом списка общих папок
Проверка связи: команда smbclient показывает, доступны ли общие ресурсы
  • Установите службу сетевого обнаружения для Linux (рекомендуется).
    Чтобы Linux-компьютер мог «видеть» и сам «показывать себя» в сетевом окружении, установите пакет wsdd (Web Services Discovery Daemon) или avahi. Для Kubuntu/Ubuntu:

    sudo apt install wsdd

После установки служба запустится автоматически. Теперь ваш Linux-компьютер должен начать отображаться в сетевом окружении Windows, а также лучше обнаруживать другие устройства.

  • Проверьте рабочую группу в Samba.
    Откройте файл /etc/samba/smb.conf и убедитесь, что параметр workgroup совпадает с рабочей группой в Windows (по умолчанию — WORKGROUP).
workgroup = WORKGROUP

Шаг 3: Крайняя мера (Включение SMB1) — НЕ РЕКОМЕНДУЕТСЯ

Внимание! Протокол SMB1 (также известный как NT1) устарел и содержит критические уязвимости, такие как использовавшиеся в эпидемиях шифровальщиков WannaCry. Используйте этот метод только временно, если все другие способы не помогли и требуется срочный доступ к данным на старом оборудовании, не поддерживающем SMB2/3.

Если вы осознаёте риски и решились:

  1. На Windows (временно!) включите компонент «SMB 1.0/CIFS File Sharing Support» через окно «Компоненты Windows».

  2. На Linux в файле /etc/samba/smb.conf в секцию [global] добавьте строки:

    client min protocol = NT1

    server min protocol = NT1

Перезапустите службу Samba (не перезагружая компьютер!):

sudo systemctl restart smbd nmbd

# или для некоторых систем

sudo systemctl restart smb

После получения доступа к файлам немедленно отмените эти изменения и ищите способ обновить старое оборудование или программное обеспечение.

Сводная таблица решений

Проблема Причина Безопасное решение Небезопасное временное решение
Linux не видит компьютеры в сетевом окружении Отсутствие службы сетевого обнаружения (мастер-браузера) в Linux Установить wsdd или avahi Включить NetBIOS через WINS (устаревшее)
Ошибка подключения к общим папкам Windows Несовместимость протоколов SMB Настроить Windows на использование SMB2/3, проверить логин/пароль, брандмауэр В крайнем случае: Включить SMB1 на обеих сторонах
Windows не видит общие папки Linux Неправильная настройка Samba или брандмауэра Linux Проверить smb.conf, правила firewalld/ufw, перезапустить smbd —

Заключение

Основная причина проблем в связке Linux и Windows — отказ от устаревшего и небезопасного протокола SMB1. Решением является правильная настройка современных протоколов SMB2/SMB3, установка служб сетевого обнаружения (например, wsdd) и проверка базовых настроек общего доступа и брандмауэра.

Никогда не используйте включение SMB1 в качестве основного решения. Это должен быть крайний и временный метод, осознающий все риски для безопасности вашей сети.

Если у вас остались вопросы или описанные методы не помогли — опишите вашу ситуацию в комментариях, указав дистрибутив Linux, версию Windows и вывод команды smbclient -L //IP.