В прошлой статье мы начали рассматривать настройку домашнего медиасервера на базе Ubuntu Server 12.04 и рассказали как настроить общий доступ к сети Интернет и сетевое хранилище. Сегодня мы разберем настройку торрент-клиента и DNLA-медиасервера, что позволит получать доступ к мультимедийному контенту с самого широкого спектра бытовых и мобильных устройств.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Торрент-клиент
Можно без преувеличения сказать, что сегодня торренты стали одним из основных способов получения контента. Вопрос лицензионной чистоты мы оставим за кадром, пусть каждый сам принимает для себя решение, хотя в порядке личного мнения могу сказать, что качество многих выходящих в прокат "фильмов" настолько низко, что их авторам впору приплачивать зрителям за бесполезно потраченное время.
Мы же поставим себе иную цель: настроить простой и удобный торрент-клиент, который будет автоматически закачивать торренты на нашем сервере. В качестве клиента мы будем использовать transmission, который может работать в качестве службы и лучше всего подходит для работы на сервере.
Для установки серверной версии transmission выполните команду:
sudo apt-get install transmission-daemon
Перейдем к настройкам, которые хранятся в файле /etc/transmission-daemon/settings.json.
Внимание! transmission-daemon имеет одну неприятную особенность, если в момент изменения конфигурационного файла служба была запущена, то при повторном запуске она откатит все внесенные изменения. Поэтому все настройки следует производить только при остановленной службе!
Остановим службу:
sudo service transmission-daemon stop
Теперь можно переходить к настройке, при правке конфигурационного файла не забываем про синтаксис: каждая строка, кроме последней, должна заканчиваться запятой.
Прежде всего определимся с рабочими директориями. Загруженные торренты будем помещать в уже существующую папку Downloads (/data/Downloads). Для самих торрент-файлов создадим специальную папку Torrents, содержимое которой будет отслеживаться нашим клиентом и при появлении в ней нового торрент-файла загрузка будет начинаться автоматически. В этой же папке создадим скрытую директорию для недокачаных торрентов .incomplete, чтобы они не смущали ваших домашних и были бы им недоступны до момента полной закачки.
Создадим директории и установим нужные права:
sudo mkdir /data/Torrents
sudo mkdir /data/Torrents/.incomplete
sudo chmod 777 -R /data/Torrents
Обращаем внимание, что точка в начале имени файла или папки делает его скрытым. Теперь откроем /etc/samba/smb.conf и добавим еще один общий ресурс:
[Torrents]
path = /data/Torrents
guest ok = yes
writeable = yes
Перезапустим Samba:
sudo service smbd restart
Включив отображение скрытых файлов и папок в Проводнике можем убедиться, что папки созданы правильно.
Создав необходимую структуру директорий перейдем к настройке торрент-клиента, откроем /etc/transmission-daemon/settings.json и начнем его редактирование. Первым делом включим веб интерфейс и зададим параметры доступа к нему:
"rpc-authentication-required": true,
"rpc-bind-address": "192.168.30.100",
"rpc-enabled": true,
"rpc-password": "password",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "transmission",
"rpc-whitelist": "127.0.0.1,192.168.30.*",
"rpc-whitelist-enabled": true,
Последовательно пробежимся по настройкам. Первая строка требует аутентификации при доступе, вторая задает ip-адрес на котором будет работать веб-интерфейс, третья его включает. В следующей строке задается пароль, при сохранении файла он будет автоматически заменен на хэш. Затем указывается порт, url-адрес и имя пользователя. Две последние строки включают "белый список", т.е. откуда можно заходить в веб-интерфейс.
Настроим директории:
"download-dir": "/data/Downloads",
"incomplete-dir": "/data/Torrents/.incomplete",
"incomplete-dir-enabled": true,
Здесь все должно быть понятно без комментариев: задаем папки для закачек, неполных закачек и разрешаем помещать неполные закачки в отдельную папку.
Разрешим отслеживать папку на предмет появления новых торрент-файлов, для этого в конец файла добавим следующие строки (не забываем про синтаксис):
"watch-dir": "/data/Torrents",
"watch-dir-enabled": true
После чего настроим торрент-опции:
"dht-enabled": true,
"peer-port": 51413,
"port-forwarding-enabled": true,
"utp-enabled": true,
Данные настройки включают DHT, указывают порт, на котором следует принимать входящие соединения, включает автоматический форвардинг портов с использованием UPnP или NAT-PMP, что позволяет принимать входящие соединения даже находясь за NAT и, последняя опция, включает протокол µTP.
Сохраняем файл и, на всякий случай, делаем его резервную копию:
sudo cp -f /etc/transmission-daemon/settings.json /etc/transmission-daemon/settings.bak
Теперь можно запустить службу:
sudo service transmission-daemon start
и зайти в веб-интерфейс, набрав в браузере адрес http://ubuntu-home.local:9091. Для проверки поместим в общую папку Torrents торрент-файл, если все сделано правильно то к его имени добавится расширение added и начнется закачка, а в папке .incompleted появится закачиваемый торрент.
Также можно добавлять торренты через веб-интерфейс, выбирая файл на компьютере или указывая URL-адрес.
Для того, чтобы наш торрент-клиент мог принимать внешние подключения разрешим входящие соединения на порт 51413, для этого добавим в /etc/nat строки:
#Разрешаем входящие torrent
iptables -A INPUT -i eth0 -p tcp --dport 51413 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 51413 -j ACCEPT
Обратите внимание, что добавить их нужно перед правилом #Запрещаем входящие извне.
Перезагрузим сервер. В нашем случае (тестовая лаборатория) данный сервер расположен за NAT, войдя в веб-интерфейс роутера можем убедиться, что NAT не помеха, UPnP работает и позволяет принимать внешние подключения.
На этом настройку торрент-клиента можно считать законченной и переходить к следующему этапу.
DLNA-сервер
Что такое DLNA? Это сокращение от Digital Living Network Alliance, под которым скрывается набор стандартов для обмена медиаконтентом для совместимых устройств. DLNA позволяет пользователям легко и прозрачно получать доступ к мультимедийному содержимому сети с любого устройства (телевизор, планшет. ноутбук и т.п.) не задумываясь о технической стороне вопроса, работа сводится к оперированию привычными понятиями: музыка, видео, изображения и выборе необходимого контента из структурированного каталога.
В качестве DLNA-сервера мы будем использовать MediaTomb. Установим пакет:
sudo apt-get install mediatomb
Если вы хотите отображать фильмы в виде превью, то установите еще два пакета:
sudo apt-get install ffmpeg ffmpegthumbnailer
Сразу укажем сетевые интерфейсы на которых будет работать сервис, для этого в файле /etc/default/mediatomb найдем и зададим опцию:
INTERFACE="eth1"
Основные настройки медиасервера хранятся в /etc/mediatomb/config.xml. Настроек немного, сначала включим веб-интерфейс и зададим параметры доступа к нему:
<ui enabled="yes" show-tooltips="yes">
<accounts enabled="yes" session-timeout="30">
<account user="mediatomb" password="mediatomb"/>
Укажем имя сервера и корневой каталог для медиаконтента:
<name>Ubuntu Home</name>
<home>/data</home>
Включим превью при отображении фильмов:
<ffmpegthumbnailer enabled="yes">
Ниже идут опции отвечающие за размер и место фильма, откуда будет взята картинка, при желании можете поэкспериментировать с ними. Остальные настройки оставляем по умолчанию. Перезапускаем сервис:
sudo service mediatomb restart
Теперь в сетевом окружении мы можем увидеть значок медиасервера.
Но подключаться к нему еще рано, необходимо создать библиотеки мультимедиа. Для этого зайдем в веб-интерфейс http://ubuntu-home.local:49152 и перейдем к дереву файловой системы. Выбрав папку с мультимедийным контентом можем добавить ее в библиотеку нажав на кнопку "плюс" справа или задать режим регулярного сканирования папки нажав на соседнюю кнопку где плюс изображен в окружении стрелочек.
Для работы с медиасервером можно использовать любой поддерживающий DNLA клиент. Например Windows Media Center, работа с ним очень проста и не вызовет затруднений даже у неподготовленного пользователя. Добавляем библиотеку:
Просматриваем содержимое:
Однако посмотреть фильм или послушать музыку у нас не получится, Media Center не знаком с flac и не умеет показывать mkv, с аналогичными ограничениями вы можете сталкиваться и в других клиентах. Вариантов решения проблемы может быть несколько: выбор поддерживаемых форматов для медиафайлов, перекодировка мультимедийного содержимого сервером или использование клиентов поддерживающих более широкий спектр форматов.
Понятно, что перекодирование файлов сервером наилучшим образом может решить все проблемы, но это потребует более дорогого и мощного железа, что повлечет за собой более высокий уровень шума и энергопотребления, а также довольно сложной настройки, для описания которой потребуется отдельная статья.
Из "всеядных" клиентов мы можем порекомендовать XMBC, который существует практически под все платформы, включая мобильные. Работа с ним тоже крайне проста, добавляем библиотеки с нашего сервера:
Затем смотрим кино:
Как видим, в течении всего одного вечера можно создать на базе Ubuntu Server простой и удобный медиасервер, который станет центром вашей домашней сети.
Дополнительные материалы:
- Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 1.
- Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 2.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии