LAN-диск через Samba-сервер: полное руководство по настройке

Сетевой диск на базе Samba перестаёт открываться чаще всего из-за отключённой поддержки устаревшего протокола SMBv1 на стороне Windows или из-за неправильных прав доступа в конфигурации smb.conf — обе проблемы диагностируются за несколько минут, если знать, где смотреть. Samba — это свободная реализация протокола SMB/CIFS, которая позволяет Linux-серверу выступать в роли файлового хранилища для машин под Windows, macOS и другими системами в локальной сети.

Настройка Samba-сервера — типовая задача для домашней сети и небольшого офиса: общие папки для документов, медиабиблиотека, каталог для резервных копий. Ниже разберём установку, конфигурацию, управление доступом и типичные ошибки, с которыми сталкиваются при развёртывании LAN-диска.

Как работает Samba и что понадобится

Samba использует протокол SMB (Server Message Block) — тот же, что применяется Windows для общего доступа к файлам и принтерам. Серверная часть работает на Linux-машине, а клиенты подключаются по сети через стандартный механизм сетевых дисков, например по адресу \\192.168.1.10\share.

Для развёртывания потребуется:

  • 🖥️ Компьютер или мини-ПК с Linux (подойдут Ubuntu Server, Debian и другие популярные дистрибутивы)
  • 🌐 Статический IP-адрес сервера в локальной сети — иначе сетевой диск будет «отваливаться» после смены адреса
  • 💾 Диск или раздел, который будет отдан под общие ресурсы
  • 🔑 Учётные записи пользователей, которым нужен доступ к шарам

Статический адрес можно задать либо в настройках самого сервера, либо через привязку IP к MAC-адресу в настройках роутера — второй вариант проще и не требует правки сетевой конфигурации Linux.

Установка Samba на Linux

В дистрибутивах на базе Debian и Ubuntu установка выполняется одной командой:

sudo apt update && sudo apt install samba

После установки служба обычно запускается автоматически. Проверить состояние демона можно командой systemctl status smbd — в выводе должно быть состояние active (running). Если служба не активна, запустите её через sudo systemctl start smbd и добавьте в автозагрузку командой sudo systemctl enable smbd.

Проверьте, что сервер виден в сети: с другой Linux-машины выполните smbclient -L //IP_сервера -N. Команда выведет список опубликованных ресурсов. Пустой список или ошибка подключения на этом этапе указывают на проблему с firewall или с тем, что служба не запущена.

Настройка общей папки в smb.conf

Основной файл конфигурации — /etc/samba/smb.conf. Откройте его в текстовом редакторе с правами root и добавьте в конец секцию нового ресурса:

[share]

path = /srv/samba/share

browseable = yes

read only = no

guest ok = no

valid users = @smbgroup

Разберём ключевые параметры. path — путь к каталогу на сервере, который будет опубликован. browseable делает ресурс видимым при просмотре сети. read only = no разрешает запись, а valid users ограничивает доступ членами группы smbgroup — её нужно создать заранее и добавить в неё пользователей.

Каталог для шары создаётся отдельно, с корректными правами файловой системы:

sudo mkdir -p /srv/samba/share

sudo chown -R root:smbgroup /srv/samba/share

sudo chmod -R 2770 /srv/samba/share

Бит setgid (цифра 2 в начале маски прав) заставляет новые файлы наследовать группу каталога — это избавляет от ситуации, когда один пользователь создал файл, а другой не может его изменить.

☑️ Проверка перед запуском Samba

Выполнено: 0 / 6

Пользователи и пароли Samba

У Samba собственная база паролей, отдельная от системной. Сначала создайте обычного пользователя Linux (если его ещё нет), затем добавьте его в Samba:

sudo smbpasswd -a username

Команда запросит пароль дважды. Именно этот пароль пользователь будет вводить при подключении сетевого диска из Windows. Активировать учётную запись можно через sudo smbpasswd -e username.

После любых изменений конфигурации проверяйте её синтаксис утилитой testparm — она укажет на ошибки и покажет итоговые параметры с учётом значений по умолчанию. Затем перезапустите службу: sudo systemctl restart smbd.

⚠️ Внимание: гостевой доступ (guest ok = yes) без пароля удобен, но открывает файлы любому устройству в локальной сети. Если сеть общая — например, к ней подключаются гости по Wi-Fi, — используйте только авторизованный доступ.

Подключение сетевого диска из Windows

На клиентской машине Windows откройте Проводник, перейдите в раздел «Этот компьютер» и выберите «Подключить сетевой диск». Укажите путь в формате \\IP_сервера\share, отметьте опцию «Использовать другие учётные данные» и введите логин и пароль, заданные через smbpasswd.

Альтернативный способ — команда net use Z: \\192.168.1.10\share /user:username в командной строке. Она удобна для скриптов автоподключения. Если диск должен подключаться автоматически при входе в систему, добавьте флаг /persistent:yes.

Частая причина ошибки подключения — несовпадение версий протокола SMB между клиентом и сервером. Современные версии Windows по умолчанию отключают устаревший SMBv1 из соображений безопасности, а старые конфигурации Samba могли быть настроены только на него. Решение — явно задать минимальную версию протокола в секции [global] файла smb.conf: параметр server min protocol = SMB2. Точное поведение зависит от версий Samba и Windows, поэтому при проблемах сверяйтесь с документацией вашей версии.

📊 Где вы разворачиваете Samba-сервер?
Домашний сервер или NAS
Рабочий офис
Raspberry Pi
Виртуальная машина для тестов

Типичные ошибки и их диагностика

Когда сетевой диск не подключается, действуйте последовательно — от сети к правам доступа. Сначала проверьте доступность сервера командой ping, затем порт SMB (по умолчанию 445) и только потом разбирайтесь с учётными данными и правами.

СимптомВероятная причинаЧто проверить
Сервер не виден в сетиFirewall блокирует порты SMBОткрыть порты 139 и 445 в ufw/firewalld
«Доступ запрещён» при входеПользователь не добавлен в smbpasswdПовторить smbpasswd -a, проверить valid users
Папка открывается, но запись невозможнаПрава файловой системы на каталогchown/chmod на каталог шары, read only в smb.conf
Ошибка подключения из Windows 10/11Отключён SMBv1, сервер требует егоЗадать server min protocol = SMB2
Диск отваливается после перезагрузки роутераСменился IP сервераНазначить статический IP или резервирование DHCP

Логи Samba находятся в каталоге /var/log/samba/ — файлы log.smbd и журналы отдельных клиентов помогают точно определить, на каком этапе происходит отказ. Если сообщений мало, уровень детализации повышается параметром log level в конфигурации.

⚠️ Внимание: не отключайте firewall полностью «для проверки» — откройте только нужные порты. Полное отключение защиты оставляет сервер доступным всем устройствам сети, включая потенциально скомпрометированные.
Как открыть порты в ufw

Выполните sudo ufw allow Samba — в Ubuntu для Samba есть готовый профиль приложения, который открывает нужные порты. Проверить правила можно командой sudo ufw status.

Производительность и безопасность

Скорость передачи файлов через Samba упирается в несколько факторов: пропускную способность сети, скорость дисков сервера и параметры протокола. В гигабитной сети узким местом часто оказывается Wi-Fi — для больших объёмов данных подключайте сервер и клиентов по кабелю.

  • 🔒 Используйте SMB2/SMB3 — старый SMBv1 небезопасен и медленнее
  • 🧩 Разграничивайте доступ через группы, а не индивидуальные списки пользователей в каждой шаре
  • 🗂️ Выносите данные на отдельный диск или раздел — так проще делать резервные копии
  • 🔄 Регулярно обновляйте пакет Samba: в протоколе SMB периодически находят уязвимости

Для доступа извне локальной сети Samba напрямую открывать в интернет не следует — протокол SMB не предназначен для работы через публичные сети. Безопасная альтернатива — подключение через VPN к домашней сети, после чего сетевой диск работает как обычно.

Часто задаваемые вопросы

Можно ли подключить Samba-диск с Android или iPhone?

Да. На Android это умеют многие файловые менеджеры с поддержкой SMB, на iOS — штатное приложение «Файлы»: выберите «Подключиться к серверу» и введите адрес вида smb://IP_сервера. Потребуются логин и пароль из smbpasswd.

Чем Samba отличается от NFS?

NFS — «родной» протокол общих папок для Linux и Unix-систем, он проще в настройке между Linux-машинами. Samba реализует SMB/CIFS и нужна в первую очередь для совместимости с Windows-клиентами. В смешанной сети обычно выбирают Samba.

Почему Windows пишет «не удаётся найти сетевой путь»?

Возможные причины: сервер недоступен по сети, порты 139/445 закрыты firewall, служба smbd не запущена или имя ресурса указано с ошибкой. Проверяйте по цепочке: ping → порт → testparm на сервере → права пользователя.

Нужен ли отдельный компьютер под Samba-сервер?

Нет. Samba нетребовательна к ресурсам и спокойно работает на мини-ПК вроде Raspberry Pi, на старом ноутбуке или в виртуальной машине. Требования растут только при большом числе одновременных клиентов и активной передаче данных.

Как сделать папку только для чтения для части пользователей?

Используйте параметры read list и write list в секции ресурса: первые получают доступ только на чтение, вторые — на запись. При этом права файловой системы на каталог также должны разрешать соответствующие операции.