Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 2.

В прошлой статье мы начали рассматривать настройку домашнего медиасервера на базе Ubuntu Server 12.04 и рассказали как настроить общий доступ к сети Интернет и сетевое хранилище. Сегодня мы разберем настройку торрент-клиента и DNLA-медиасервера, что позволит получать доступ к мультимедийному контенту с самого широкого спектра бытовых и мобильных устройств.

Торрент-клиент

Можно без преувеличения сказать, что сегодня торренты стали одним из основных способов получения контента. Вопрос лицензионной чистоты мы оставим за кадром, пусть каждый сам принимает для себя решение, хотя в порядке личного мнения могу сказать, что качество многих выходящих в прокат «фильмов» настолько низко, что их авторам впору приплачивать зрителям за бесполезно потраченное время.

Мы же поставим себе иную цель: настроить простой и удобный торрент-клиент, который будет автоматически закачивать торренты на нашем сервере. В качестве клиента мы будем использовать transmission, который может работать в качестве

В прошлой статье мы начали рассматривать настройку домашнего медиасервера на базе Ubuntu Server 12.04 и рассказали как настроить общий доступ к сети Интернет и сетевое хранилище. Сегодня мы разберем настройку торрент-клиента и DNLA-медиасервера, что позволит получать доступ к мультимедийному контенту с самого широкого спектра бытовых и мобильных устройств.

Торрент-клиент

Можно без преувеличения сказать, что сегодня торренты стали одним из основных способов получения контента. Вопрос лицензионной чистоты мы оставим за кадром, пусть каждый сам принимает для себя решение, хотя в порядке личного мнения могу сказать, что качество многих выходящих в прокат «фильмов» настолько низко, что их авторам впору приплачивать зрителям за бесполезно потраченное время.

Мы же поставим себе иную цель: настроить простой и удобный торрент-клиент, который будет автоматически закачивать торренты на нашем сервере. В качестве клиента мы будем использовать 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</code>
<code>sudo mkdir /data/Torrents/.incomplete</code>
<code>sudo chmod 777 -R /data/Torrents

Обращаем внимание, что точка в начале имени файла или папки делает его скрытым. Теперь откроем /etc/samba/smb.conf и добавим еще один общий ресурс:

[Torrents]</code>
<code>  path = /data/Torrents</code>
<code>  guest ok = yes</code>
<code>  writeable = yes

Перезапустим Samba:

sudo service smbd restart

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

Создав необходимую структуру директорий перейдем к настройке торрент-клиента, откроем  /etc/transmission-daemon/settings.json и начнем его редактирование. Первым делом включим веб интерфейс и зададим параметры доступа к нему:

"rpc-authentication-required": true, </code>
<code>"rpc-bind-address": "192.168.30.100", </code>
<code>"rpc-enabled": true, </code>
<code>"rpc-password": "password", </code>
<code>"rpc-port": 9091, </code>
<code>"rpc-url": "/transmission/", </code>
<code>"rpc-username": "transmission", </code>
<code>"rpc-whitelist": "127.0.0.1,192.168.30.*", </code>
<code>"rpc-whitelist-enabled": true, 

Последовательно пробежимся по настройкам. Первая строка требует аутентификации при доступе, вторая задает ip-адрес на котором будет работать веб-интерфейс, третья его включает. В следующей строке задается пароль, при сохранении файла он будет автоматически заменен на хэш. Затем указывается порт, url-адрес и имя пользователя. Две последние строки включают «белый список», т.е. откуда можно заходить в веб-интерфейс.

Настроим директории:

"download-dir": "/data/Downloads", </code>
<code>"incomplete-dir": "/data/Torrents/.incomplete", </code>
<code>"incomplete-dir-enabled": true, 

Здесь все должно быть понятно без комментариев: задаем папки для закачек, неполных закачек и разрешаем помещать неполные закачки в отдельную папку.

Разрешим отслеживать папку на предмет появления новых торрент-файлов, для этого в конец файла добавим следующие строки (не забываем про синтаксис):

"watch-dir": "/data/Torrents", </code>
<code>"watch-dir-enabled": true

После чего настроим торрент-опции:

"dht-enabled": true, </code>
<code>"peer-port": 51413,</code>
<code>"port-forwarding-enabled": true,</code>
<code>"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</code>
<code>iptables -A INPUT -p tcp --dport 51413 -j ACCEPT</code>
<code>iptables -A INPUT -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</code><span style="font-size: 1em; color: #000000; font-family: 'Helvetica Neue', Helvetica, sans-serif;"> </span>

Сразу укажем сетевые интерфейсы на которых будет работать сервис, для этого в файле /etc/default/mediatomb найдем и зададим опцию: 

INTERFACE="eth1"

Основные настройки медиасервера хранятся в /etc/mediatomb/config.xml. Настроек немного, сначала включим веб-интерфейс и зададим параметры доступа к нему:

<ui enabled="yes" show-tooltips="yes"></code>
<code>      <accounts enabled="yes" session-timeout="30"></code>
<code>        <account user="mediatomb" password="mediatomb"/>

Укажем имя сервера и корневой каталог для медиаконтента:

<name>Ubuntu Home</name></code>
<code><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 простой и удобный медиасервер, который станет центром вашей домашней сети.

Дополнительные материалы:

  1. Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 1.
  2. Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 2.

службы и лучше всего подходит для работы на сервере.

Для установки серверной версии 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</code>
<code>sudo mkdir /data/Torrents/.incomplete</code>
<code>sudo chmod 777 -R /data/Torrents

Обращаем внимание, что точка в начале имени файла или папки делает его скрытым. Теперь откроем /etc/samba/smb.conf и добавим еще один общий ресурс:

[Torrents]</code>
<code>  path = /data/Torrents</code>
<code>  guest ok = yes</code>
<code>  writeable = yes

Перезапустим Samba:

sudo service smbd restart

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

Создав необходимую структуру директорий перейдем к настройке торрент-клиента, откроем  /etc/transmission-daemon/settings.json и начнем его редактирование. Первым делом включим веб интерфейс и зададим параметры доступа к нему:

"rpc-authentication-required": true, </code>
<code>"rpc-bind-address": "192.168.30.100", </code>
<code>"rpc-enabled": true, </code>
<code>"rpc-password": "password", </code>
<code>"rpc-port": 9091, </code>
<code>"rpc-url": "/transmission/", </code>
<code>"rpc-username": "transmission", </code>
<code>"rpc-whitelist": "127.0.0.1,192.168.30.*", </code>
<code>"rpc-whitelist-enabled": true, 

Последовательно пробежимся по настройкам. Первая строка требует аутентификации при доступе, вторая задает ip-адрес на котором будет работать веб-интерфейс, третья его включает. В следующей строке задается пароль, при сохранении файла он будет автоматически заменен на хэш. Затем указывается порт, url-адрес и имя пользователя. Две последние строки включают «белый список», т.е. откуда можно заходить в веб-интерфейс.

Настроим директории:

"download-dir": "/data/Downloads", </code>
<code>"incomplete-dir": "/data/Torrents/.incomplete", </code>
<code>"incomplete-dir-enabled": true, 

Здесь все должно быть понятно без комментариев: задаем папки для закачек, неполных закачек и разрешаем помещать неполные закачки в отдельную папку.

Разрешим отслеживать папку на предмет появления новых торрент-файлов, для этого в конец файла добавим следующие строки (не забываем про синтаксис):

"watch-dir": "/data/Torrents", </code>
<code>"watch-dir-enabled": true

После чего настроим торрент-опции:

"dht-enabled": true, </code>
<code>"peer-port": 51413,</code>
<code>"port-forwarding-enabled": true,</code>
<code>"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</code>
<code>iptables -A INPUT -p tcp --dport 51413 -j ACCEPT</code>
<code>iptables -A INPUT -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</code><span style="font-size: 1em; color: #000000; font-family: 'Helvetica Neue', Helvetica, sans-serif;"> </span>

Сразу укажем сетевые интерфейсы на которых будет работать сервис, для этого в файле /etc/default/mediatomb найдем и зададим опцию: 

INTERFACE="eth1"

Основные настройки медиасервера хранятся в /etc/mediatomb/config.xml. Настроек немного, сначала включим веб-интерфейс и зададим параметры доступа к нему:

<ui enabled="yes" show-tooltips="yes"></code>
<code>      <accounts enabled="yes" session-timeout="30"></code>
<code>        <account user="mediatomb" password="mediatomb"/>

Укажем имя сервера и корневой каталог для медиаконтента:

<name>Ubuntu Home</name></code>
<code><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 простой и удобный медиасервер, который станет центром вашей домашней сети.

Дополнительные материалы:

  1. Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 1.
  2. Домашний медиа-сервер (NAT + Samba + Torrent + DLNA) на платформе Ubuntu Server. Часть 2.
  3. Источник http://interface31.ru/tech_it/2013/03/domashniy-media-server-nat-samba-torrent-dlna-na-platforme-ubuntu-server-chast-2.html
Запись опубликована в рубрике *Ubuntu. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91