LinuxRuLinux без лишней теории
Своё облако

Домашний сервер на Linux: хранение, резервные копии и сервисы

Редакция LinuxRu7 мин чтенияСоветы

Домашний сервер на Linux проще всего собрать на Debian 13 или Ubuntu 26.04 LTS: зеркало из двух дисков для данных, Samba для общих папок, restic для резервных копий и сервисы в контейнерах. Доступ извне лучше давать только через VPN. Ниже порядок сборки от железа до ежемесячного обслуживания.

Домашний сервер на Linux: хранение, резервные копии и сервисы
Фото: PauleMiranda, CC BY-SA 4.0, Wikimedia Commons
Содержание
  1. Задачи сервера
  2. Железо
  3. Выбор системы
  4. Диски и RAID
  5. Сетевые папки
  6. Резервные копии
  7. Сервисы
  8. Доступ извне
  9. Обслуживание
  10. Частые вопросы

Зачем дома сервер и с чего начать

Домашний сервер на Linux - это компьютер, который работает круглые сутки и делает то, что неудобно держать на ноутбуке: хранит общие файлы, собирает резервные копии со всех устройств, раздаёт фильмы на телевизор, хранит фотографии с телефонов. Ошибка новичка - поставить сразу двадцать сервисов из подборки. Через месяц половина не обновляется, а где лежат важные данные, уже никто не помнит.

Начните с двух задач: хранение и резервные копии. Когда они работают и вы проверили восстановление, добавляйте сервисы по одному. Такой порядок и задаёт структуру статьи.

Железо: старый ПК, мини-ПК или Raspberry Pi

  • Старый настольный ПК. Бесплатно, много места под диски. Минус - потребление: машина с дискретной видеокартой может съедать 60-100 Вт в простое. Видеокарту, если она не нужна для перекодирования видео, лучше вынуть.
  • Мини-ПК на современном мобильном процессоре. Тихий, потребляет единицы ватт в простое, встроенная графика Intel умеет аппаратно перекодировать видео для Jellyfin. Ограничение - один-два слота под накопители, большие диски придётся ставить во внешний корпус.
  • Raspberry Pi 5 и аналоги. Отлично подходят для VPN, Home Assistant, DNS-фильтра и лёгкой синхронизации. Для массива дисков и тяжёлых сервисов слабоваты. Сборка разобрана в отдельной статье про Raspberry Pi как домашний сервер.

Обязательно возьмите источник бесперебойного питания хотя бы на 10 минут: внезапное отключение во время записи - частая причина повреждения файловых систем. Систему ставьте на SSD, данные держите на отдельных дисках. Тогда переустановка ОС не задевает данные.

Какую систему поставить

Для сервера нужна предсказуемость, а не свежие версии программ. Свежий софт всё равно будет приходить в контейнерах.

СистемаСильные стороныНа что обратить внимание
Debian 13Стабильность, минимальная установка, долгая поддержкаПакеты обновляются только исправлениями
Ubuntu 26.04 LTSПять лет обычной поддержки, много инструкцийSnap в базовой системе, часть пакетов только через snap
Fedora Server 44Свежее ядро, Cockpit и SELinux из коробкиПереход на новую версию каждые 6-12 месяцев
Proxmox VEВиртуальные машины и контейнеры LXC через веб-интерфейсИзбыточно, если нужен только файловый сервер
TrueNAS, openmediavaultГотовый NAS с веб-панелью, ZFS или RAID в пару кликовМеньше свободы при нестандартных задачах

Если вы уже работаете в Linux и хотите понимать, что происходит, ставьте Debian 13 или Ubuntu 26.04 LTS в минимальной конфигурации без рабочего стола. Если командная строка пугает, openmediavault на базе Debian даст веб-панель и оставит возможность зайти по SSH.

Диски: зеркало, Btrfs или ZFS

Для дома достаточно зеркала из двух одинаковых дисков: при отказе одного данные остаются на втором. Три распространённых способа:

  • mdadm RAID1 + ext4 - классика, проще всего восстановить на любой системе.
  • Btrfs RAID1 - встроенные контрольные суммы и снимки. Научиться откатывать снимки поможет статья про Btrfs и Snapper.
  • ZFS mirror - самая продуманная защита от тихой порчи данных, но в Debian и Ubuntu модуль ставится отдельно, а ОЗУ ему желательно побольше.
# найти диски, не перепутайте с системным
lsblk -o NAME,SIZE,MODEL,SERIAL
# вариант 1: mdadm
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
sudo mkfs.ext4 -L data /dev/md0
# вариант 2: Btrfs с зеркалом данных и метаданных
sudo mkfs.btrfs -L data -d raid1 -m raid1 /dev/sdb /dev/sdc

Монтируйте массив по UUID с опцией nofail, чтобы сервер загружался, даже если диск не ответил:

sudo blkid
# строка в /etc/fstab
UUID=ваш-uuid  /srv/data  btrfs  defaults,nofail  0  0

Следите за здоровьем дисков: пакет smartmontools есть во всех дистрибутивах, а служба smartd умеет присылать письмо при первых признаках проблем. Для Btrfs раз в месяц запускайте проверку sudo btrfs scrub start /srv/data.

RAID защищает от поломки диска, но не от удаления файла, шифровальщика или пожара. Зеркало копирует ошибку на оба диска мгновенно. Резервная копия должна быть отдельно от сервера.

Общие папки по сети: Samba и NFS

Для Windows, macOS, телефонов и большинства телевизоров нужен Samba. Для Linux-клиентов удобен и NFS, но Samba работает и там, так что начните с него.

# Debian, Ubuntu
sudo apt install samba
# Fedora
sudo dnf install samba

Добавьте в конец /etc/samba/smb.conf:

[data]
   path = /srv/data
   valid users = @family
   read only = no
   create mask = 0664
   directory mask = 2775
sudo groupadd family
sudo usermod -aG family anna
sudo chgrp -R family /srv/data
sudo chmod 2775 /srv/data
# у Samba свои пароли
sudo smbpasswd -a anna
testparm
# Debian, Ubuntu
sudo systemctl restart smbd
# Fedora
sudo systemctl enable --now smb

В Fedora дополнительно разрешите Samba в firewalld (sudo firewall-cmd --permanent --add-service=samba и reload) и пометьте каталог для SELinux: sudo semanage fcontext -a -t samba_share_t "/srv/data(/.*)?", затем sudo restorecon -Rv /srv/data. Бит setgid на каталоге (2 в начале прав) нужен, чтобы новые файлы получали группу family и были доступны всем членам семьи.

Резервные копии по схеме 3-2-1

Схема 3-2-1: три копии данных, на двух разных носителях, одна из них вне дома. Для домашнего сервера это выглядит так: данные на массиве, копия на внешнем диске, ещё одна копия в облаке или у родственников. Шифруйте копии, которые покидают дом.

Restic подходит для обоих мест: шифрует, удаляет дубли, хранит много версий. Пример с внешним диском:

sudo apt install restic
restic -r /mnt/backup/restic init
restic -r /mnt/backup/restic backup /srv/data /etc
restic -r /mnt/backup/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic -r /mnt/backup/restic check
# пробное восстановление
restic -r /mnt/backup/restic restore latest --target /tmp/restore-test

Запускайте копирование таймером systemd, а пароль от репозитория храните в файле с правами 600 и в менеджере паролей. Без него восстановить копию невозможно. Сравнение Restic и Borg, а также настройка удалённого хранилища описаны в статье Borg или Restic и схема 3-2-1.

Раз в квартал восстанавливайте пару случайных файлов и одну большую папку целиком. Копия, которую ни разу не пробовали восстановить, легко оказывается пустой или битой, и узнаёте вы об этом в самый неудобный момент.

Сервисы в контейнерах: что ставить и как

Почти все популярные домашние сервисы распространяются как контейнеры. Так проще обновлять и не засорять систему зависимостями. Часто выбирают:

  • Jellyfin - медиатека для фильмов и сериалов с клиентами для ТВ и телефонов.
  • Immich - замена облачным фотографиям, автозагрузка с телефона, распознавание лиц локально.
  • Nextcloud - файлы, календари, контакты. Тяжелее остальных, нужна база данных.
  • Syncthing - синхронизация папок без облака, хватает обычного пакета.
  • Home Assistant - управление умным домом.

Простой пример compose.yaml для Jellyfin:

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    restart: unless-stopped
    ports:
      - "8096:8096"
    volumes:
      - /srv/jellyfin/config:/config
      - /srv/jellyfin/cache:/cache
      - /srv/data/media:/media:ro
docker compose up -d
docker compose logs -f

Как работает современный Compose, разобрано в статье про Docker Compose plugin. Если предпочитаете Podman, контейнеры удобно превращать в службы systemd через Quadlet. Конфиги и данные контейнеров держите в /srv: так их легко включить в резервную копию одной строкой.

Доступ из интернета без открытых портов

Не пробрасывайте на роутере порты веб-интерфейсов. Админки сервисов не рассчитаны на атаки из интернета, и уязвимость в одном из них даёт доступ ко всем вашим файлам.

  1. Поднимите VPN. WireGuard работает быстро, наружу открыт только один UDP-порт, настройка описана в статье про WireGuard для домашней сети. Если провайдер не даёт белый IP, выручают mesh-сети на базе WireGuard, работающие через посредника.
  2. SSH оставьте доступным только из домашней сети и VPN, вход только по ключу. Пошаговая настройка в материале о защите SSH-сервера.
  3. Если сервис действительно нужен публично (например, ссылка на альбом для родственников), ставьте перед ним обратный прокси с TLS и авторизацией и открывайте только 443.

Обновления, мониторинг и веб-панель

Сервер, который никто не обновляет, через год становится проблемой. Включите автоматические обновления безопасности:

# Debian, Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# Fedora
sudo dnf install dnf5-plugin-automatic
sudo systemctl enable --now dnf5-automatic.timer

Образы контейнеров обновляйте руками раз в неделю-две: docker compose pull и docker compose up -d. Автоматическое обновление контейнеров удобно, но после крупного релиза сервис может не стартовать, пока вы не прочитаете заметки к выпуску.

Для наблюдения без сложного мониторинга хватит Cockpit: веб-панель показывает нагрузку, диски, журналы и службы, умеет перезагружать сервер.

sudo apt install cockpit
# панель открывается на https://адрес-сервера:9090

Раз в месяц уделите серверу десять минут: проверьте вывод sudo smartctl -H /dev/sdb, свободное место командой df -h, журнал упавших служб systemctl --failed и дату последней удачной резервной копии. Этого достаточно, чтобы проблемы не копились незаметно. Подробности о дисковых массивах есть в Linux RAID Wiki на kernel.org.

Частые вопросы

Какой Linux лучше для домашнего сервера?

Debian 13 или Ubuntu 26.04 LTS в минимальной установке. Если нужна готовая веб-панель для NAS, подойдут openmediavault или TrueNAS, для виртуальных машин Proxmox VE.

RAID заменяет резервную копию?

Нет. RAID спасает при отказе диска, но удалённый или зашифрованный вирусом файл пропадёт на обоих дисках. Копия должна храниться отдельно.

Можно ли сделать домашний сервер из старого компьютера?

Да, старый ПК хорошо подходит. Учитывайте энергопотребление: дискретную видеокарту лучше вынуть, систему поставить на SSD.

Как получить доступ к домашнему серверу из интернета безопасно?

Через VPN, например WireGuard. Открывать на роутере порты веб-интерфейсов не стоит.

Docker или Podman для домашнего сервера?

Оба подходят. У Docker больше готовых инструкций с compose.yaml, Podman работает без постоянного демона и хорошо интегрируется с systemd через Quadlet.

Документация и источники

Читайте также

Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.