// Engineering Log
Протоколы передачи файлов: Часть 4 — SMB или NFS
Опубликовано 22.09.2026
// Быстрый маршрут
Эта статья относится к теме Серверы и инфраструктура.
Когда файлы нужно не передавать, а работать с ними прямо на сервере — открывать документы, сохранять проекты, хранить общие папки отдела, — используют протоколы сетевых файловых систем. Их два: SMB, привычный пользователям Windows, и NFS, стандарт мира Unix и Linux. Оба позволяют подключить папку на сервере так, будто это локальный диск, но устроены по-разному.
SMB: файловые ресурсы Windows
SMB (Server Message Block) — протокол общих папок и принтеров Windows. Если вы подключали сетевой диск \\server\share, вы пользовались SMB. Работает он поверх TCP, порт 445.
Версии SMB
- SMB1 (его диалект также называют CIFS) — устаревшая версия с известными уязвимостями, через которые распространялись шифровальщики. Microsoft объявила её устаревшей в 2014 году.
- SMB2 и SMB3 — современные версии. SMB 3.x поддерживает шифрование трафика, несколько каналов одновременно (multichannel) и защиту от подмены при согласовании соединения (SMB 3.1.1).
По документации Microsoft, начиная с Windows 10 и Windows Server версии 1709 SMB1 не устанавливается по умолчанию, а в Windows 11 после чистой установки нет ни клиента, ни сервера SMB1. На практике это значит: старый NAS или МФУ, которые умеют только SMB1, современная Windows просто не увидит. Microsoft настоятельно не рекомендует возвращать SMB1 — правильное решение в таком случае — обновить прошивку устройства или заменить его.
Проверить и включить шифрование на Windows-сервере можно в PowerShell:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EncryptData
Set-SmbServerConfiguration -EncryptData $trueSamba: SMB-сервер на Linux
Samba — свободная реализация SMB. С её помощью Linux-сервер раздаёт папки Windows- и macOS-клиентам, а также подключается к ресурсам Windows. По умолчанию современная Samba принимает соединения не ниже SMB 2.02 (server min protocol = SMB2_02) — то есть SMB1 выключен и здесь.
Минимальная общая папка для отдела:
# /etc/samba/smb.conf
[global]
server min protocol = SMB2_02
server smb encrypt = desired
[docs]
path = /srv/share/docs
valid users = @office
read only = no
create mask = 0660
directory mask = 0770sudo smbpasswd -a ivanov # пароль Samba для пользователя системы
testparm # проверка конфигурации
sudo systemctl restart smbdvalid users = @officeпускает только членов группыoffice.read onlyпо умолчаниюyes— для записи его нужно выключить явно.server smb encrypt = desiredпредлагает клиентам шифрование, но не требует его;requiredпотребует шифрование от всех клиентов, и старые устройства подключиться не смогут.
Подключение с Linux-клиента:
sudo mount -t cifs //192.0.2.20/docs /mnt/docs -o username=ivanov,vers=3.1.1NFS: сетевая файловая система Unix
NFS (Network File System) изначально создан для Unix. Его естественная среда — Linux-серверы, кластеры виртуализации, хранилища для контейнеров и резервных копий.
Версии NFS
- NFSv3 — простой и быстрый, но требует нескольких служб и портов (rpcbind на 111, mountd и другие), что усложняет межсетевой экран. Доступ определяется по адресу клиента, а пользователь — по числовому UID, который сообщает сам клиент.
- NFSv4.x — работает через один порт 2049, поддерживает Kerberos и сопоставляет пользователей по именам, а не только по числам. Для новых установок выбирают его.
Главная ловушка NFS: кому сервер верит
По умолчанию NFS использует режим sec=sys: сервер доверяет UID и GID, которые передаёт клиент. Если на клиенте у пользователя UID 1000, сервер будет считать его владельцем файлов пользователя 1000 — даже если на сервере это другой человек. Отсюда два правила:
- Экспортировать только доверенным адресам, а не всей сети.
- Там, где клиентам нельзя доверять, использовать Kerberos:
sec=krb5(только аутентификация),krb5i(плюс целостность),krb5p(плюс шифрование).
Пользователь root на клиенте по умолчанию сопоставляется с анонимным пользователем (root_squash) — это защита, отключать которую без особой причины не стоит.
Минимальная настройка NFS-сервера
# /etc/exports
/srv/backup 192.0.2.0/24(rw,sync,no_subtree_check)sudo exportfs -ra # применить изменения
sudo exportfs -v # проверить, что экспортируется
# на клиенте
sudo mount -t nfs4 192.0.2.30:/srv/backup /mnt/backupПо документации exports: ro — значение по умолчанию, поэтому для записи нужен rw; sync отвечает клиенту только после записи данных на диск; async быстрее, но при сбое сервера данные могут потеряться.
Что на самом деле влияет на скорость
Споры «что быстрее — SMB или NFS» обычно упираются не в протокол, а в окружение:
- Сеть. Гигабитная сеть ограничивает скорость примерно 110 МБ/с в любом протоколе. Переход на 10 Гбит/с даёт больше, чем смена протокола.
- Диски. Если на сервере медленный массив, быстрый протокол не поможет.
- Мелкие файлы. Тысячи маленьких файлов упираются в задержки операций с метаданными, а не в пропускную способность.
- Синхронная запись.
syncв NFS и шифрование в SMB замедляют запись — это цена надёжности и безопасности. - Параллельность. SMB 3 умеет multichannel, в Linux-клиенте NFS есть параметр монтирования
nconnectдля нескольких TCP-соединений.
Что выбрать
| Ситуация | Протокол |
|---|---|
| Офис с Windows и macOS, общие папки отделов | SMB 3 (Windows Server или Samba) |
| Linux-серверы, виртуализация, контейнеры | NFSv4 |
| Хранилище резервных копий для Linux-машин | NFSv4 или rsync по SSH |
| Смешанная сеть | Samba для пользователей и NFS для серверов на одном хранилище |
| Доступ через интернет | ни тот ни другой напрямую — только через VPN |
Типичные ошибки
- Включённый обратно SMB1 ради старого МФУ. Это открывает сеть для уязвимостей, которыми пользуются шифровальщики. Лучше сканировать в папку по SMB2 после обновления прошивки или через другой механизм.
- Порт 445 или 2049, открытый в интернет. Сетевые файловые системы рассчитаны на доверенную сеть.
- NFS-экспорт на всю подсеть с
no_root_squash. Любой root на любом клиенте получает права root на экспортированных файлах. - Разные UID на клиентах NFSv3. Файлы «меняют владельца» в зависимости от того, с какой машины на них смотреть.
// Похожая задача
Если у вас похожая ситуация
Эта статья относится к одной из рабочих тем. Можно продолжить чтение по теме, перейти на главную, чтобы понять, чем я занимаюсь, или сразу открыть услуги.
Тема статьи
Серверы и инфраструктура
VPS, Linux, веб-стек, миграции, хостинг, базы данных и базовая эксплуатация.
Часто с этим приходят
- Перенести сайт или сервис на новый сервер
- Настроить Linux, Nginx, базу данных и бэкапы
- Разобраться, почему всё работает нестабильно
// Следующий шаг
Если вам нужна не только статья, а помощь по этой теме, удобнее сразу перейти в услугу. Главная и подборка материалов остаются рядом.
Открыть услуги// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related