Если кто-то не знает, то NAS (Network Attached Storage) — это сетевое хранилище, ваш личный файловый сервер, доступный на всех устройствах в вашей локальной домашней сети. Сейчас на рынке можно найти множество готовых NAS-решений от известных брендов, а также целую россыпь специальных дистрибутивов для быстрого развертывания хранилища. Однако все эти подходы развертывания NAS имеют ряд не самых приятных нюансов: в первом случае мы покупаем “коробку”, и не всегда понятно, что у нее внутри и какие есть ограничения, а во втором случае дистрибутив часто бывает перегружен функциями, которые вам могут никогда не понадобиться: вам ведь нужно NAS-хранилище, а не жнец, чтец, и на дуде игрец? Так или иначе, все эти решения объединяет одно: под капотом у них в большинстве случаев — Linux. Так почему бы нам не взять чистый дистрибутив Debian и не построить на его основе свое собственное хранилище. Команда ServerFlow считает, что так может сделать каждый, поэтому в этой статье мы расскажем вам, как развернуть домашнее NAS-хранилище и правильно настроить его, чтобы злобные корпорации никогда не добрались до ваших личных данных.
План
Сегодня мы не будем вдаваться в подробности о том, что такое NAS, какие NAS бывают и какие файловые системы существуют — об этом мы рассказывали в отдельной статье. Наша задача — объяснить вам все тонкости развертывания NAS, и мы приступаем к ней незамедлительно. Вот какой фронт настроек нам предстоит проделать для достижения цифрового суверенитета:
SMB-сервер — для удобного доступа к файлам с Windows и macOS.
Zeroconfig (Avahi) — для автоматического обнаружения нашего сервера в сети.
Торрент-клиент (Transmission) — здесь объяснения не нужны.
DLNA-сервер (MiniDLNA) — для просмотра медиаконтента на телевизоре и других устройствах.
Уведомления в Telegram — для получения данных о состоянии дисков.
Шаг 1: Подготовка и установка системы
Переходим от слов к действию и начинаем разбор первого шага — подготовки аппаратного обеспечения и установки Debian.
В нашем случае будет использоваться плата материнская плата Supermicro X10SDV. Почему наш острый глаз пал именно на нее? Все дело в наличии двух 10-гигабитных сетевых портов Ethernet — для коммерческого NAS этого может быть маловато, но под домашнее хранилище хватит с лихвой. Кроме того, эта плата также поддерживает интеграцию модулей оперативной памяти с ECC, что критически важно, если вы не хотите потерять все свои фотографии из папки “Геленджик 2007” из-за системного сбоя.
Материнская плата Supermicro X10SDV для развертывания NAS-хранилища.
В нашем хранилище установлено 64 ГБ RAM ECC, чего более чем достаточно для домашнего NAS. Об установки Debian говорить не будем — гайдов на эту тему в сети пруд пруди. После установки зайдите на сервер по SSH, узнайте IP-адрес, полученный по DHCP, через команду ip a, повысьте привилегии до суперпользователя через su -l, обновите список пакетов вводом apt update и, наконец, установите все необходимые нам пакеты командой apt install mdadm samba avahi-daemon transmission-daemon smartmontools minidlna.
Модули оперативной памяти с емкостью 32 ГБ и поддержкой ECC.
Шаг 2: Настройка дискового пространства (RAID 5)
NAS-хранилище с дисками RAID-уровней — это кружка с дыркой, поэтому следующим шагом станет настройка дискового пространства и создание RAID-массива. В нашей системе используется 4 диска, из которых мы соберем программный RAID 5 с помощью утилиты mdadm. Почему именно программный, а не аппаратный RAID? Так проще, надежнее и дешевле. Для начала проверим, видит ли система наши диски командой lsblk. В нашем случае используются диски с именами sdb, sdc, sdd и sde.
Перед созданием массива нужно удалить с дисков старую информацию о других RAID, если таковая имеется. Это делается следующей командой:
mdadm --zero-superblock --force /dev/sd{b,c,d,e}
Удалили? Отлично! Ой, забыли вас предупредить: эта команда полностью стирает все данные с дисковых накопителей! Убедитесь, что используете правильные имена дисков, чтобы не удалить важные файлы.
Если все указано верно, можно приступать к созданию RAID-массива. Введите эту команду:
Затем система запросит подтверждение — нужно согласиться. Процесс создания (ресинхронизации) массива может занять весьма продолжительное время, но работать с ним можно уже сейчас. Помните, что во время перестройки массива диски могут сильно нагреться — заранее подготовьте жидкий азот или хотя бы проверьте работу системы охлаждения.
Переходим к очень важному шагу: сохраняем конфигурацию массива, чтобы система автоматически собирала его после перезагрузки. Для этого создайте файл конфигурации и запишите в него информацию о нашем массиве:
Создание RAID-5 массива в системе на базе 4 дисков.
Отлично, с RAID закончили, поэтому переходим к развертыванию файловой системы. Мы будем использовать проверенную временем систему ext4, которая широко известна своей отказоустойчивостью. Введите команду mkfs.ext4 /dev/md0, чтобы создать ext4. Теперь настроим автоматическое монтирование нашего раздела при загрузке системы. Для этого создаем директорию для монтирования командой mkdir /mnt/storage. Затем узнаем UUID нашего нового раздела (использовать UUID корректнее, чем имена /dev/md0) командой blkid, скопируйте его и откройте файл /etc/fstab командой nano /etc/fstab. Добавьте в конец файла следующую строку, подставив свой UUID:
Сохраните файл ( CTRL+O ) и выйдите ( CTRL+X ). Осталось только примонтировать все разделы, указанные в fstab, используя команду mount -a, и в конце проверить свободное место на дисках командой df -h. Если вы видите примонтированный раздел со свободным местом (в нашем случае 10 ТБ), значит, все сделано корректно.
Монтирование разделов файловой системы.
Шаг 3: Настройка файлового сервера (Samba)
Надеюсь, вы еще не сдались, ведь основной процесс только начинается — теперь займемся настройкой файлового сервера. Для этого будем использовать самое популярное ПО для обращения к файлам под названием Samba. Сначала создадим директории для наших сетевых папок командами:
Теперь откроем конфигурационный файл Samba с помощью команды nano /etc/samba/smb.conf. Там вы увидите секцию [global], параметры которой должны выглядеть именно так:
workgroup = WORKGROUP
server role = standalone server
unix password sync = yes
В самый конец файла добавьте описание ваших общих папок. У нас это выглядит так:
Папка [smbshare]:
path = /mnt/storage/smbshare
guest ok = no
writable = yes
browsable = yes
Папка [downloads]:
path = /mnt/storage/downloads
guest ok = no
writable = yes
browsable = yes
Папка [media]:
path = /mnt/storage/media
guest ok = no
writable = yes
browsable = yes
Настройка секции global в конфигурационном файле сервиса Samba.
Следующий шаг — создать пользователя для доступа. Важно учесть, что пользователя сначала нужно создать в самой файловой системе, и только потом задать ему пароль для Samba. Пользователь и пароль создаются так:
useradd ИМЯ ПОЛЬЗОВАТЕЛЯ -m -s /bin/bash
passwd ВАШ ПАРОЛЬ
После этого задайте Samba-пароль для созданного пользователя такой командой:
smbpasswd -a ИМЯ ПОЛЬЗОВАТЕЛЯ
Перезапускаем сервис Samba командой systemctl restart smbd и вуа-ля, все готово!
Теперь вы можете зайти с другого компьютера в вашей сети и увидите новые общие папки.
Общая папка, созданная с помощью сервиса Samba.
Шаг 4: Настройка S3-хранилища (MinIO)
Почти половина пути пройдена, но еще осталось несколько преград, одной из которых является настройка S3-хранилища, для чего мы рекомендуем использовать MinIO. MinIO — это популярный сервис объектного хранилища, совместимый с Amazon S3 API. Он идеально подходит для хранения бэкапов, медиафайлов и статики для веб-приложений. По сути, это ваше личное, безопасное и, что не менее важно, бесплатное облако для хранения данных. Приступаем к развертыванию: качаем актуальную версию пакета MinIO на официальном сайте проекта. Затем устанавливаем ее командой:
dpkg -i minio_20250907161309.0.0_amd64.deb
Для обеспечения безопасности запустите MinIO от имени специального пользователя:
Отлично, подготовка S3-хранилища завершена, но теперь нужно настроить его. Откройте параметры хранилища с помощью команды nano /etc/default/minio и приведите его к следующему виду, задав логин, пароль и путь к данным:
Самый важный шаг на этом этапе — выдать права. Сервис Transmission работает от имени пользователя debian-transmission, поэтому для выдачи прав вводим такие команды:
На этом все, сохраняем и запускаем сервис командой:
systemctl start transmission-daemon
Осталось только проверить! Зайдите в браузере по адресу http://<IP-адрес-NAS>:9091. Чтобы проверить автоматическую загрузку, скопируйте .torrent файл в сетевую папку downloads/watch.
Шаг 6: Настройка DLNA-сервера (MiniDLNA)
Мы почти у финиша! Предпоследний шаг — настроить DLNA-сервер, чтобы запускать скачанные кинчики на Smart-TV или смартфоне:
В первую очередь создадим директории для медиаконтента:
mkdir -p /mnt/storage/media/{video,music,photos}
Затем нужно настроить права доступа. Сервис работает от имени пользователя minidlna, поэтому введите следующие команды:
Для создания папки хранения базы данных введите эту команду:
db_dir=/var/cache/minidlna
Нужна еще одна папка для логов:
log_dir=/var/log/minidlna
Теперь установите имя, под которым сервер будет виден в сети:
friendly_name=MyDebianNAS
После этого включите автоматическое обнаружение новых файлов командой:
inotify=yes
В конце сохраните файл и перезапустите сервис:
systemctl restart minidlna
Для проверки закиньте пару фильмов в папку media/video. На вашем Smart TV или смартфоне в разделе “Медиасерверы” должен появиться MyDebianNAS.
Шаг 7: Настройка уведомлений о состоянии дисков в Telegram
Чтобы не допустить ситуации, когда ваши диски неожиданно выйдут из строя, стоит подключить Telegram-уведомления о состоянии дисков через бота. Для начала, такого бота нужно создать:
Найдите в Telegram бота @BotFather и отправьте ему команду /newbot.
Придумайте имя (например, MyNAS Monitor Bot) и юзернейм (например, mynas_alert_bot).
BotFather пришлёт вам токен вида 1234567890:ABC....XYZ. Сохраните его.
Найдите своего бота в поиске и отправьте ему любое сообщение (например, /start).
Чтобы узнать ваш CHAT_ID, откройте в браузере ссылку, подставив свой токен: https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates. В ответе найдите "chat":{"id":<ВАШ_ID>}. Это и есть ваш ID.
Теперь создайте скрипт для отправки уведомлений:
Bash
nano /usr/local/bin/smart-telegram.sh
Вставьте в него следующий код, заменив YOUR_BOT_TOKEN и YOUR_CHAT_ID на ваши данные:
Если уведомление пришло, сохраните скрипт и сделайте его исполняемым командой:
chmod +x /usr/local/bin/smart-telegram.sh
Теперь настройте smartd для вызова скрипта. Для этого откройте файл командой /etc/smartd.conf, найдите строку DEVICESCAN и приведите её к такому виду (или добавьте, если ее нет): DEVICESCAN -a -H -m root -M exec /usr/local/bin/smart-telegram.sh.
-a — отслеживать все атрибуты SMART.
-H — следить за общим состоянием здоровья диска.
-M exec — выполнять внешнюю команду.
В конце перезапускаем сервис smartmontools командой:
systemctl restart smartmontools
На этом все — если с одним из дисков возникнут проблемы, вы получите уведомление в Telegram.
Выводы
Теперь ваш собственный, домашний NAS-сервер полностью готов к эксплуатации. Как вы видите, ничего сложного в этом нет. Преимущество такого подхода заключается в том, что вы можете добавлять на сервер только те сервисы, которые нам действительно нужны, и вы точно будете знать, как он устроен и работает.
Спасибо за статью. Все изложено доступно и хорошо. Одно замечание при настройке Transmission в файле /etc/transmission-daemon/settings.json в самом конце после записи "watch-dir-enabled": true , необходимо убрать запятую. Исправте пожалуйста.
Serverflow
Благодарим за отзыв и за замечание! Проверим корректность команды и, если мы действительно допустили ошибку, внесем изменения!
Вадим
09.11.2025
Не очень понятна цель настройки s3 minio. Его использование предполагает работу через сеть интернет? Есть же самба для шары файлов в сети.
Serverflow
Передали Ваш вопрос автору гайда, как получим ответ ответим на почту!
Андрей
14.10.2025
Несколько вопросов.
1) Почему не raidZ?
2) Почему не ZFS?
3) Для дома и семьи можно поставить OpenMediaVault, почему вы решили сами собирать?
Serverflow
В целом ZFS была бы в тему, но наш специалист решил остаться на EXT4 для удобства. Причина простая: EXT4 вообще не требует ничего от железа, а вот ZFS требует.
Из этого вытекает ответ на первый вопрос: Raid-Z это для ZFS, а не EXT4.
Касательно Вашего третьего вопроса: OpenMediaVault противоречит концепции. Мы хотели минималистичный NAS с полной настройкой своими руками.
Будут еще вопросы, можете смело писать, постараемся ответить :)
Скидка 3 000 ₽ или бесплатная доставка - уже сейчас 🔥
Мы ценим вашу обратную связь. После покупки оставьте отзыв о ServerFlow на Яндексе и условия акции будут исполнены.
* — скидка предоставляется при покупке от 30 000 рублей, в ином случае предусмотрена бесплатная доставка.
Продолжная использовать наш сайт, вы даете согласие на использование файлов Cookie, пользовательских данных (IP-адрес, вид операционной системы, тип браузера, сведения о местоположении, источник, откуда пришел на сайт пользователь, с какого сайта или по какой рекламе, какие страницы
открывает и на какие страницы нажимает пользователь) в целях функционирования сайта, проведения статистических исследований и обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.