NAS
NAS: подключение сетевых хранилищ и интеграция с сервисами
NAS (Network Attached Storage) — это сетевое хранилище, которое предоставляет доступ к файлам по протоколам NFS, SMB/CIFS, AFP и другим. В контексте self‑hosted решений NAS часто используется как:
- внешнее хранилище для Nextcloud (расширение дискового пространства);
- резервное хранилище для бэкапов Docker-томов и баз данных;
- централизованное файловое хранилище для нескольких серверов.
В этой статье описано подключение NAS-шары к серверам на Linux (Ubuntu/Debian), Windows и macOS, а также монтирование этих шаров в Docker-контейнеры и интеграция с Nextcloud.
1. Типы подключений
| Протокол | Порт | Описание | ОС |
|---|---|---|---|
| NFS (Network File System) | 2049 (TCP/UDP) | нативная файловая система для UNIX/Linux, высокая производительность | Linux, macOS, Windows (с клиентом) |
| SMB/CIFS (Server Message Block) | 445 (TCP), 139 (TCP) | универсальный протокол для Windows и всех основных ОС | Windows, Linux, macOS |
| AFP (Apple Filing Protocol) | 548 (TCP) | устаревающий протокол Apple, рекомендуется использовать SMB | macOS (режим совместимости) |
Для большинства современных систем рекомендуются NFS (для Linux‑серверов) и SMB (для смешанных сред и Windows).
2. Подключение NAS по NFS (Linux)
2.1. Установка клиента NFS
На клиентской машине (ваш сервер) установите пакет:
sudo apt update sudo apt install nfs-common -y
2.2. Монтирование шары вручную
Предположим, NAS-сервер имеет IP 192.168.1.100, а шара называется /export/nas_share.
Создайте точку монтирования:
sudo mkdir -p /mnt/nas
Смонтируйте:
sudo mount -t nfs 192.168.1.100:/export/nas_share /mnt/nas
Проверьте:
df -h | grep nas
2.3. Автоматическое монтирование при загрузке (fstab)
Добавьте строку в /etc/fstab:
192.168.1.100:/export/nas_share /mnt/nas nfs defaults,noatime 0 0
Проверьте монтирование:
sudo mount -a
2.4. Опции NFS для производительности
Для улучшения производительности добавьте опции:
192.168.1.100:/export/nas_share /mnt/nas nfs rw,hard,intr,noatime,vers=4.2,timeo=600,retrans=5 0 0
hard— повторять запросы при сбое (вместоsoft).intr— разрешить прерывание запросов (для отказоустойчивости).noatime— не обновлять время доступа к файлам (повышает скорость).vers=4.2— использовать NFSv4.2 (поддержка современных возможностей).
3. Подключение NAS по SMB/CIFS (Linux)
3.1. Установка клиента SMB
sudo apt install cifs-utils -y
3.2. Создание файла с учётными данными
Для безопасного хранения логина и пароля создайте файл ~/.smbcredentials:
username=your_smb_user password=your_smb_password domain=WORKGROUP
Установите права доступа:
chmod 600 ~/.smbcredentials
3.3. Монтирование шары
Создайте точку монтирования:
sudo mkdir -p /mnt/nas_smb
Смонтируйте:
sudo mount -t cifs //192.168.1.100/share_name /mnt/nas_smb -o credentials=/home/user/.smbcredentials,uid=33,gid=33,file_mode=0755,dir_mode=0755
uid=33,gid=33— владелец www-data (пользователь веб-сервера). Если монтируете для другого пользователя, укажите его uid/gid.file_modeиdir_mode— права доступа.
3.4. Автоматическое монтирование (fstab)
Добавьте строку в /etc/fstab:
//192.168.1.100/share_name /mnt/nas_smb cifs credentials=/home/user/.smbcredentials,uid=33,gid=33,file_mode=0755,dir_mode=0755,iocharset=utf8 0 0
4. Подключение NAS на Windows
4.1. Подключение сетевого диска (графический способ)
- Откройте «Проводник».
- Нажмите правой кнопкой на «Этот компьютер» → «Подключить сетевой диск».
- Выберите букву диска и укажите путь:
\\192.168.1.100\share_name. - Введите учётные данные (если требуется).
- Отметьте «Восстанавливать при входе в систему» для автоматического подключения.
4.2. Подключение через командную строку (cmd)
net use Z: \\192.168.1.100\share_name /user:username password /persistent:yes
4.3. Доступ к NAS из WSL2
Если вы используете WSL2 с Ubuntu, смонтированная на Windows шара доступна по пути /mnt/z/ (если буква диска Z:). Но для лучшей производительности лучше монтировать SMB-шару напрямую внутри WSL2 через mount (см. раздел для Linux).
5. Подключение NAS на macOS
5.1. Графический способ
- Откройте Finder → «Переход» → «Подключение к серверу».
- Введите
smb://192.168.1.100/share_nameилиnfs://192.168.1.100/export/nas_share. - Введите учётные данные.
- Шара появится в боковой панели Finder и будет автоматически монтироваться при входе, если добавить её в «Объекты входа» в системных настройках.
5.2. Командная строка (для SMB)
mkdir -p /Volumes/nas_smb sudo mount -t smbfs //username:password@192.168.1.100/share_name /Volumes/nas_smb
Для автоматического монтирования добавьте запись в /etc/fstab (подробнее в документации Apple).
6. Монтирование NAS-шары в Docker
Чтобы контейнеры могли использовать NAS-хранилище, есть два способа:
6.1. Bind mount (прямая привязка папки хоста)
Если шара смонтирована на хост-системе (например, в /mnt/nas), вы можете привязать эту папку в контейнер:
docker run -d --name my-app -v /mnt/nas:/app/data my-image
В Docker Compose:
volumes: - /mnt/nas:/app/data
6.2. Использование плагина NFS для Docker (рекомендуется для продакшена)
Docker имеет встроенную поддержку NFS-томов через драйвер nfs. Это позволяет не монтировать шару на хост, а подключать её напрямую в контейнер.
Создайте том:
docker volume create --driver local \ --opt type=nfs \ --opt o=addr=192.168.1.100,rw,noatime \ --opt device=:/export/nas_share \ nas_volume
Используйте этот том в Compose:
services:
app:
image: nextcloud
volumes:
- nas_volume:/var/www/html/data
volumes:
nas_volume:
external: true
Этот подход безопаснее, так как не требует монтирования на хост и позволяет Docker управлять подключением.
7. Интеграция с Nextcloud (внешнее хранилище)
После того как NAS-папка смонтирована (на хост или как Docker-том), её можно добавить как внешнее хранилище в Nextcloud.
- Зайдите в Nextcloud как администратор.
- Перейдите в «Настройки» → «Администрирование» → «Внешнее хранилище».
- Включите приложение «External Storage Support» (если не активно).
- Нажмите «Добавить хранилище» → выберите «Local».
- В поле «Путь» укажите путь внутри контейнера (например,
/mnt/nasили/var/www/html/data/external, если вы привязали том). - Укажите доступную для пользователей папку, права доступа и сохраните.
Теперь пользователи смогут видеть эту папку в своём файловом менеджере Nextcloud.
8. Рекомендации по производительности и безопасности
- Используйте NFSv4 (или выше) вместо v3, так как он быстрее и безопаснее.
- Для SMB включайте опцию
cache=strictилиcache=noneв зависимости от сценария. - Если NAS используется для Nextcloud, убедитесь, что папка данных доступна для записи пользователю www-data (uid 33) или тому пользователю, под которым работает PHP-FPM.
- Настройте бэкап данных с NAS на другой носитель (например, облачный или внешний диск) — NAS не является гарантией сохранности.
- Ограничьте доступ к NAS-шарам по IP-адресам через файрвол или настройки самого NAS.
- Для чувствительных данных используйте шифрование на стороне клиента (например, EncFS или Cryptomator) перед записью на NAS.
9. Полезные команды
| Команда | Назначение |
|---|---|
df -h |
посмотреть смонтированные файловые системы |
mount -t nfs |
смонтировать NFS-шару |
mount -t cifs |
смонтировать SMB-шару |
umount /mnt/nas |
отмонтировать шару |
showmount -e 192.168.1.100 |
посмотреть доступные экспорты на NFS-сервере (только если разрешено) |
smbclient -L //192.168.1.100 -U username |
просмотр списка SMB-ресурсов |