Зачем вообще нужен домашний сервер на Raspberry Pi?
Знаете, Raspberry Pi потребляет всего около 5 ватт энергии. Это примерно доллар в месяц за электричество! А что вы получаете за эти копейки? Файловый сервер, медиастример, блокировщик рекламы для всей сети и вообще всё, что душе угодно. И всё это на крошечном компьютере размером с кредитку, который тихонько стоит где-нибудь в уголке.
Подписки на облачные хранилища, стриминговые сервисы, умные хабы для дома — всё это ежемесячные платежи. А домашний сервер на Pi заменит сразу несколько таких сервисов, причём единоразовой покупкой. Плюс, ваши данные будут принадлежать только вам!
В этом гайде мы шаг за шагом пройдем весь путь: от распаковки до полностью рабочего сервера с общим доступом к файлам, медиастримингом через Plex и блокировкой рекламы с помощью Pi-hole.
Что нам понадобится
Обязательное железо
| Что | Для чего | Примерная стоимость |
|---|---|---|
| Raspberry Pi 4 (4GB или 8GB) | Сам сервер | $55-75 |
| Карта microSD (32GB+) | Загрузочный диск | $8-12 |
| Блок питания USB-C (5V/3A) | Питание | $8-10 |
| Ethernet-кабель | Стабильное сетевое соединение | $5 |
| Внешний USB жесткий диск | Хранилище для файлов и медиа | $40-80 |
Необязательно, но очень желательно
- Алюминиевый корпус с пассивным охлаждением — он отлично охлаждает Pi без вентилятора, так что всё будет работать бесшумно.
- USB SSD вместо HDD — работает быстрее, надежнее, но стоит дороже.
- Источник бесперебойного питания (UPS) — защитит от скачков напряжения и потери данных.
Программы (все бесплатные!)
- Raspberry Pi OS Lite (нам не нужен графический интерфейс)
- Samba (для обмена файлами)
- Plex Media Server
- Pi-hole (для блокировки рекламы)
Шаг 1: Записываем Raspberry Pi OS
Скачайте Raspberry Pi Imager на свой основной компьютер. Вставьте microSD-карту и следуйте этим шагам:
- Откройте Raspberry Pi Imager.
- Выберите Raspberry Pi OS Lite (64-bit) — для сервера без монитора рабочий стол нам не нужен.
- Перед записью нажмите на значок шестеренки (Advanced Options):
- Задайте имя хоста (например,
piserver). - Включите SSH с аутентификацией по паролю.
- Придумайте имя пользователя и пароль.
- Настройте WiFi (на всякий случай, но для сервера лучше использовать Ethernet).
- Установите локаль и часовой пояс.
- Задайте имя хоста (например,
- Запишите образ на SD-карту.
Маленький лайфхак: Запишите имя пользователя и пароль, которые вы задали. Удивительно, сколько людей их забывают и потом вынуждены всё записывать заново!
Шаг 2: Первый запуск и первичная настройка
Вставьте SD-карту в Pi, подключите Ethernet, воткните блок питания и подождите около 90 секунд.
Находим Pi в сети
С другого компьютера в той же сети выполните:
ping piserver.local
Если команда не сработала, проверьте IP-адрес Pi на странице настроек вашего роутера или воспользуйтесь nmap -sn 192.168.1.0/24 (замените 192.168.1.0/24 на вашу подсеть).
Подключаемся по SSH
ssh ваше_имя_пользователя@piserver.local
### Обновляем всё
```bash
sudo apt update && sudo apt full-upgrade -y
Это может занять 5-10 минут. Дождитесь полного завершения.
Настраиваем Pi
sudo raspi-config
Основные настройки, которые стоит изменить:
- Expand filesystem — чтобы использовать всю SD-карту.
- GPU memory — установите 16MB, так как дисплей не подключен.
- Timezone — убедитесь, что часовой пояс соответствует вашему местоположению.
Перезагрузитесь, когда система предложит.
Шаг 3: Настраиваем внешнее хранилище
Подключите ваш внешний USB-диск. Определите его:
lsblk
Вы должны увидеть свой диск в списке (обычно это /dev/sda). Если диск новый или вы хотите начать с чистого листа, отформатируйте его в ext4:
sudo mkfs.ext4 /dev/sda1
Внимание: Это удалит всё с диска. Дважды проверьте, что форматируете правильное устройство.
Создаем точку монтирования и авто-монтирование
sudo mkdir /mnt/storage
sudo mount /dev/sda1 /mnt/storage
Чтобы диск монтировался автоматически при каждой загрузке, узнайте его UUID:
sudo blkid /dev/sda1
Добавьте эту строку в /etc/fstab (замените your-uuid-here на ваш UUID):
UUID=ваш-uuid-здесь /mnt/storage ext4 defaults,nofail 0 2
Опция nofail очень важна — она позволит Pi загрузиться, даже если диск не подключен.
Создаем структуру папок
sudo mkdir -p /mnt/storage/{shared,media,backups}
sudo chown -R ваше_имя_пользователя:ваше_имя_пользователя /mnt/storage
## Шаг 4: Настраиваем Samba для обмена файлами
Samba позволит вам получать доступ к файлам с компьютеров Windows, Mac и Linux в вашей сети.
```bash
sudo apt install samba samba-common-bin -y
Редактируем конфигурацию Samba:
sudo nano /etc/samba/smb.conf
Добавьте в конец файла:
[Shared]
path = /mnt/storage/shared
browseable = yes
writeable = yes
create mask = 0775
directory mask = 0775
valid users = ваше_имя_пользователя
[Media]
path = /mnt/storage/media
browseable = yes
read only = yes
guest ok = yes
Задайте пароль для Samba:
sudo smbpasswd -a ваше_имя_пользователя
Перезапускаем Samba:
sudo systemctl restart smbd
### Доступ с других устройств
- **Windows:** Откройте "Проводник", в адресной строке введите `\\piserver.local`.
- **Mac:** В Finder нажмите Cmd+K и введите `smb://piserver.local`.
- **Linux:** Используйте функцию "Подключиться к серверу" в вашем файловом менеджере или смонтируйте через `cifs`.
## Шаг 5: Устанавливаем Plex Media Server
Plex превратит ваш Pi в настоящий медиасервер. Вы сможете смотреть фильмы, слушать музыку и просматривать фото с любого устройства, где есть браузер или приложение Plex.
```bash
# Добавляем репозиторий Plex
curl https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | sudo tee /usr/share/keyrings/plex-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/plex-archive-keyring.gpg] https://downloads.plex.tv/repo/deb public main" | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
# Устанавливаем
sudo apt update
sudo apt install plexmediaserver -y
### Настраиваем Plex
1. Откройте `http://piserver.local:32400/web` в браузере.
2. Войдите или создайте аккаунт Plex.
3. Назовите свой сервер.
4. Добавьте папки для библиотек, указав пути к `/mnt/storage/media/movies`, `/mnt/storage/media/tv` и т.д.
**Важный момент про транскодирование:** Raspberry Pi 4 не умеет аппаратно транскодировать видео. Чтобы стриминг был плавным, убедитесь, что ваши медиафайлы совместимы с форматом вашего устройства воспроизведения (большинство современных устройств отлично справляются с H.264 MP4 "нативно"). Direct Play работает отлично, а вот транскодирование — нет.
**Маленький лайфхак:** Организуйте свои медиафайлы в соответствии со структурой, которую ожидает Plex:
/mnt/storage/media/movies/Название Фильма (Год)/Название Фильма (Год).mkv /mnt/storage/media/tv/Название Сериала/Сезон 01/Название Сериала - S01E01.mkv
Шаг 6: Устанавливаем Pi-hole для блокировки рекламы по всей сети
Pi-hole работает как DNS-сервер для всей вашей сети, блокируя рекламу и трекеры еще до того, как они успеют загрузиться. Это выгодно всем устройствам в вашей сети — даже телефонам, смарт-телевизорам и IoT-гаджетам, на которые нельзя установить блокировщик.
curl -sSL https://install.pi-hole.net | bash
Установщик интерактивный. Ключевые моменты:
- Выберите свой Ethernet-интерфейс.
- Выберите любой DNS-провайдер (Cloudflare
1.1.1.1или Google8.8.8.8— популярные варианты). - Установить веб-интерфейс администрирования (да).
- Логировать запросы (да, это полезно для отладки).
После установки запишите пароль администратора, который появится на экране, или задайте новый:
pihole -a -p
### Направляем вашу сеть на Pi-hole
Самый простой способ: зайдите в настройки вашего роутера и установите основной DNS-сервер на IP-адрес вашего Pi. Тогда все устройства в сети автоматически начнут использовать Pi-hole.
Заходите в дашборд по адресу `http://piserver.local/admin`, чтобы видеть заблокированные запросы, топ доменов и статистику.
## Шаг 7: Обеспечиваем безопасность сервера
### Настраиваем файрвол
```bash
sudo apt install ufw -y
sudo ufw allow ssh
sudo ufw allow samba
sudo ufw allow 32400/tcp # Plex
sudo ufw allow 53 # Pi-hole DNS
sudo ufw allow 80/tcp # Pi-hole web interface
sudo ufw enable
### Включаем автоматические обновления безопасности
```bash
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
### Настраиваем аутентификацию по SSH-ключам (рекомендуется)
С вашего основного компьютера:
```bash
ssh-keygen -t ed25519
ssh-copy-id ваше_имя_пользователя@piserver.local
Затем отключите аутентификацию по паролю в /etc/ssh/sshd_config, установив PasswordAuthentication no и перезапустив SSH.
Планируем регулярное резервное копирование
Добавляем задачу в cron для резервного копирования критически важных конфигураций:
crontab -e
Добавьте:
0 3 * * 0 tar -czf /mnt/storage/backups/pi-config-$(date +\%Y\%m\%d).tar.gz /etc/samba /etc/pihole /etc/fstab
Это будет запускаться каждое воскресенье в 3 часа ночи и сохранять ваши конфигурации.
Советы по производительности
- Всегда используйте Ethernet — WiFi добавляет задержки и снижает скорость при передаче файлов.
- Используйте USB 3.0 диск — у Pi 4 есть порты USB 3.0 (синие). Убедитесь, что ваш диск подключен именно к ним.
- Подумайте об SSD — корпус для USB 3.0 SSD с запасным SATA SSD значительно ускорит доступ к файлам.
- Следите за температурой — периодически запускайте
vcgencmd measure_temp. Если температура постоянно выше 70C, улучшите охлаждение. - Берегите SD-карту — SD-карты изнашиваются от частых записей. Используйте
log2ram, чтобы логи хранились в оперативной памяти:sudo apt install log2ram.
Решение проблем
Pi не находится в сети
- Проверьте, подключен ли Ethernet-кабель и горит ли индикатор сети.
- Поищите IP-адрес Pi в списке DHCP-клиентов вашего роутера.
- Если используете WiFi, убедитесь, что в Imager были введены правильные учетные данные.
Внешний диск не монтируется
- Запустите
dmesg | tail -20после подключения диска, чтобы проверить наличие ошибок. - Некоторые диски потребляют слишком много энергии от USB-портов Pi. Используйте внешний USB-хаб с собственным питанием, если это необходимо.
Plex тормозит (буферизация)
- Убедитесь, что клиент выполняет Direct Play, а не транскодирование (проверьте дашборд Plex во время воспроизведения).
- Преобразуйте медиа в формат H.264 MP4 с помощью HandBrake на вашем основном компьютере.
Что еще может ваш Pi-сервер?
После того как основа готова, вы можете добавить еще больше сервисов:
- Home Assistant — центр управления умным домом
- Nextcloud — ваше собственное облачное хранилище (типа Google Drive)
- WireGuard VPN — безопасный доступ к вашей домашней сети из любой точки мира
- Gitea — собственный Git-сервер
- Grafana + InfluxDB — дашборды для мониторинга всех ваших домашних данных
Компьютер мощностью пять ватт, работающий 24/7, раздающий ваши файлы, стримящий медиа и блокирующий рекламу по всей сети. Вот такой продуктивный полдень!