Работа DLNA-сервера предпологает что клиенты будут находиться в одном широковещательном домене. Для обнаружения сетевых сервисов используются протоколы mDNS и SSDP. qBittorrent NOX позволит через веб-интерфейс скачивать необходимые файлы для дальнейшего отображения их в MiniDLNA. Будут использоваться два раздела - один для ОС, другой для хранилища файлов.
Стенд:
Все это настраивалось на следующих версиях ПО:
- Debian: 13 (Trixie);
- qBittorrent-NOX: 5.1.0;
- MiniDLNA: 1.3.3;
Подготовка:
Создаем раздел под хранилище:
Определяемся какой диск будем разбивать на разделы:
# lsblk
- Разбиваем на разделы нужный диск:
# fdisk /dev/sdb
# g
# n
- Проверяем:
# p
- Записываем изменения:
# w
# q
- Формантируем раздел:
# mkfs.ext4 -L data /dev/sdb1
Обновляемся до актуального состояния:
# apt update && apt upgrade
Создаем пользователя:
C отключенным шелом и одноименной группой.
# useradd dlna -b /home/ -m -U -s /bin/false
- Задаем пароль:
# passwd dlna -
Создаем директорию куда будет монтироваться HDD диск:
# mkdir /mnt/data
Узнаем UUID диска и монтирум:
# blkid или lsblk -sf
# nano /etc/fstab
# data was on /dev/sdb1
UUID= /mnt/data ext4 noatime,commit=600 0 0
# systemctl daemon-reload
# mount -a
Создаем директорию для DLNA:
# mkdir /mnt/data/dlna
qBittorrent NOX:
# apt install qbittorrent-nox
Автостарт демона с помощью systemd:
# nano /etc/systemd/system/qbittorrent-nox.service
[Unit]
Description=qBittorrent-nox daemon service
After=network.target
[Service]
#Do not change to "simple"
Type=forking
User=dlna
Group=dlna
UMask=007
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8081
Restart=on-failure
[Install]
WantedBy=multi-user.target
Управление демоном:
# systemctl daemon-reload
# systemctl enable --now qbittorrent-nox && systemctl status qbittorrent-nox
Автостарт демона с помощью init.d:
# wget -O /etc/init.d/qbittorrent-nox-daemon https://launchpadlibrarian.net/38905385/qbittorrent
# chmod 755 /etc/init.d/qbittorrent-nox-daemon
# update-rc.d qbittorrent-nox-daemon defaults
- Удалить:
# update-rc.d -f qbittorrent-nox-daemon remove
- Настройка:
# nano /etc/init.d/qbittorrent-nox-daemon
DAEMON_ARGS="--webui-port=8081"
USER=dlna
Управление демоном:
# service qbittorrent-nox status [start] [stop] [restart]
Обычный запуск:
Например когда порт уже используется.
# qbittorrent-nox
Конфигурационный файл:
# nano ~/.config/qBittorrent/qBittorrent.conf
# nano /home/dlna/.config/qBittorrent/qBittorrent.conf
Включаем поддержку _HTTPS:
С помощью самоподписанного сертификата на 5 лет.
# mkdir /home/dlna/.config/qBittorrent/ssl
# openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout /home/dlna/.config/qBittorrent/ssl/dlna.net.lan.key -out /home/dlna/.config/qBittorrent/ssl/dlna.net.lan.crt
# chown -R dlna:dlna /home/dlna/.config/qBittorrent/
Настройка key и .crt:
# nano /home/dlna/.config/qBittorrent/qBittorrent.conf
WebUI\HTTPS\Enabled=true
WebUI\HTTPS\CertificatePath=/home/dlna/.config/qBittorrent/ssl/dlna.net.lan.crt
WebUI\HTTPS\KeyPath=/home/dlna/.config/qBittorrent/ssl/dlna.net.lan.key
Перезапускаем сервис:
# service qbittorrent-nox restart
Проверяем и настраиваем доступы:
https://dlna.net.lan:8081/
User: admin
Password: adminadmin
MTv: -
MiniDLNA:
# apt install minidlna
Настройка демона:
# nano /etc/init.d/minidlna
USER=dlna
GROUP=dlna
# systemctl daemon-reload
# chown -R dlna:dlna /var/cache/minidlna/
Конфигурационный файл:
# cp /etc/minidlna.conf{,.bkp}
# nano /etc/minidlna.conf
user=dlna
media_dir=A,/mnt/data/dlna/music
media_dir=P,/mnt/data/dlna/pictures
media_dir=V,/mnt/data/dlna/videos
media_dir=AV,/mnt/data/dlna/bit-torrent
log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=error
network_interface=ens16.24
port=8200
friendly_name=MiniDLNA
Создаем каталоги под наши файлы:
# mkdir -p /mnt/data/dlna/{music,pictures,videos,bit-torrent}
- Устанавливаем права:
# chown -R dlna:dlna /mnt/data/dlna/
- Рестартуем демон:
# /etc/init.d/minidlna restart
Для принудительного повторного сканирования:
Удалит кэшированные данные и базу из /var/cache/minidlna/.
# minidlnad -R
Правим sysctl.conf:
Иначе будет ругаться в логах на эту настройку.
# nano /etc/sysctl.d/host.conf
# MiniDLNA
fs.inotify.max_user_watches = 100000
# sysctl -p /etc/sysctl.d/host.conf
Проверяем логи и смотрим статистику:
# less /var/log/minidlna/minidlna.log
http://dlna.net.lan:8200/
Очистка кеша:
# rm -r /var/cache/minidlna/*
Автосгенерированный systemd сервис:
# find /etc/systemd/system/ -name "*minidlna*"
# nano /etc/systemd/system/multi-user.target.wants/minidlna.service
User=dlna
Group=dlna
# systemctl daemon-reload
# systemctl status minidlna.service
Настройка ротации логов:
# nano /etc/logrotate.d/minidlna
create 0644 dlna dlna
Полезные ссылки: