Настройка сервиса transmission для загрузки файлов, в частности, видео и просмотр его через DLNA, т.е. практически на любом современном телевизоре, планшете, телефоне в локальной сети
Установка Transmission-daemon
Cкачивать видео с торрента можно любым клиентским приложением. Мы же настроим демон, который будет загружаться вместе с системой и работать в фоне. Transmission-daemon есть в стандартном репозитории Ubuntu, поэтому устанавливаем его обычным образом
sudo apt install transmission-daemonЕсли после установки не запустился сервис и при проверке статуса будут ошибки
systemd[1]: transmission-daemon.service: Failed with result 'timeout'.
systemd[1]: Failed to start transmission-daemon.service - Transmission BitTorrent Daemon.
То нужно отредактировать настройки сервиса и заменить Type=notify на Type=simple
sudo systemctl edit --full transmission-daemon.serviceУстановка Gerbera
В репозитории Ubuntu версия Gerbera может быть не последней, поэтому устанавливаем по инструкции с официального сайта
wget -O - https://pkg.gerbera.io/public.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/gerbera-keyring.gpg >/dev/null && \
echo "deb [signed-by=/usr/share/keyrings/gerbera-keyring.gpg] https://pkg.gerbera.io/debian/ $(lsb_release -c --short) main" | sudo tee /etc/apt/sources.list.d/gerbera.list >/dev/null && \
sudo apt-get update && \
sudo apt-get install gerbera -yПодготовка директории
Для простоты скачивать торренты будем в корневую директорию /torrent. Можете указать свою директорию, главное, чтобы туда был доступ для пользователей debian-transmission и gerbera, которые создаются при установке приложений. Владельцем назначим пользователя debian-transmission
sudo mkdir /torrent && \
sudo chown debian-transmission:debian-transmission /torrent && \
sudo chmod ug+rwx /torrentДобавим текущего пользователя и пользователя gerbera в группу debian-transmission, чтобы иметь доступ к директории /torrent
sudo usermod -a -G debian-transmission $USER && \
sudo usermod -a -G debian-transmission gerberaДля того, чтобы группа применилась к текущему пользователю, необходимо перезагружиться
Настройка Transmission
Далее настроим transmission через конфиг /etc/transmission-daemon/settings.json
Важно помнить!!! При остановке службы transmission переписывает настройки, загруженные при старте. Поэтому или перед редактированием необходимо остановить службу
sudo systemctl stop transmission-daemon.serviceили перечитывать изменения после сохранения настроек
sudo systemctl reload transmission-daemon.serviceМеняем, при необходимости, следующие настройки
{
...
"alt-speed-down": 6144,
"alt-speed-time-begin": 480,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": true,
"alt-speed-time-end": 1140,
"download-dir": "/torrent",
"download-queue-size": 1,
"incomplete-dir": "/torrent/.incomplete",
"incomplete-dir-enabled": true,
"rpc-authentication-required": false,
"rpc-password": "password",
"rpc-username": "transmission",
"rpc-whitelist": "127.0.0.1,192.168.1.*",
...
}
rpc-authentication-required— отключаем аутентификацию, если не требуется входить по логину/паролюrpc-usernameиrpc-password— пользователь и пароль доступа к веб интерфейсу. Пароль задается в текстовом, при старте сервиса будет преобразован в хешrpc-whitelist— если планируется доступ из локальной сети, то добавляем IP или диапазон IP используя*в качестве маскиdownload-queue-size— количество одновременных скачиваний
Со списком возможных настроек можно ознакомиться в конце заметки
После успешного запуска веб-интерфейс будет доступен по адресу http://127.0.0.1:9091/
Настройка Gerbera
Gerbera уже сразу пригодна для использования. Можно лишь поменять в файле конфигурации /etc/gerbera/config.xml название в секции
<name>Gerbera</name>
и включить аутентификацию, выставив в секции accounts атрибут enabled="yes" и задав нужный логин и пароль
<ui enabled="yes" show-tooltips="yes">
<accounts enabled="no" session-timeout="30">
<account user="gerbera" password="gerbera" />
</accounts>
</ui>
По-умолчанию веб показывает все директории. Чтобы ограничить доступ к определенным директориям, необходимо в секцию import добавить подсекцию visible-directories, где перечислить директории, которые может видеть gerbera
<import hidden-files="no">
<visible-directories>
<add-path name="/torrent"/>
</visible-directories>
</import>
После установки сервис gerbera.service отключен. Для запуска сервиса необходимо выполнить команду, которая включит и запустит сервис
systemctl enable --now gerbera.serviceПосле успешного запуска веб-интерфейс будет доступ по адресу http://<IP_вашей_машины>:49152/. Gergera открывает доступ к веб-интерфейсу через один из доступных сетевых интерфейсов. Поэтому, если DHCP настроен выдавать динамический IP, после перезагрузки веб-адрес может измениться. Чтобы посмотреть текущий адрес, то можно посмотреть статус службы gerbera.service
systemctl status gerbera.serviceinfo: Configuration load succeeded.
info: Validating configuration...
info: Configuration check succeeded.
info: Loading 0 configuration items from database
info: Initialising UPnP with interface: <unset>, port: <unset>
info: IPv4: Server bound to: 192.168.1.70:49152
info: IPv6 ULA/GLA: Server bound to: :0
info: The Web UI can be reached by following this link: http://192.168.1.70:49152
Описание настроек transmission
| «alt-speed-down»: 50, | скорость альтернативной загрузки KB/s Нажатие «Черепаха» в gui активирует настройки альтернативной загрузки |
| «alt-speed-enabled»: false, | включена ли альтернативная загрузка да/нет (true/false) |
| «alt-speed-time-begin»: 540, | время начала альтернативной загрузки с 540 минуты от начала суток, т.е. с 9:00 |
| «alt-speed-time-day»: 127, | по каким дням включать альтернативные настройки: 127-по всем |
| Воскресенье: 1 (binary: 0000001) | |
| Понедельник: 2 (binary: 0000010) | |
| Вторник: 4 (binary: 0000100) | |
| Среда: 8 (binary: 0001000) | |
| Четверг: 16 (binary: 0010000) | |
| Пятница: 32 (binary: 0100000) | |
| Суббота: 64 (binary: 1000000) | |
| Например: | |
| Рабочие дни: 62 (binary: 0111110) | |
| Выходные: 65 (binary: 1000001) | |
| Все дни: 127 (binary: 1111111) | |
| «alt-speed-time-enabled»: true, | включено ли время альтернативной загрузки да/нет (true/false) |
| «alt-speed-time-end»: 1020 , | время окончания альтернативной загрузки до 1020 минуты от начала суток, т.е. до 17:00 |
| «alt-speed-up»: 50, | скорость альтернативной отдачи KB/s |
| «bind-address-ipv4″: «0.0.0.0», | прослушивается на всех адресах IPv4 и IPv6, доступных в вашей системе |
| «bind-address-ipv6″: «::», | прослушивается на всех адресах IPv4 и IPv6, доступных в вашей системе |
| «blocklist-enabled»: false, | Использовать списки блокировки URL |
| «blocklist-url»: «http://www.example.com/blocklist», | списки блокированных URL |
| «cache-size-mb»: 4, | Размер (по умолчанию = 4), в мегабайтах, для распределения кэша памяти. Кэш используется для совместного использования пакетного ввода-вывода, поэтому увеличение размера кеша может быть использовано для уменьшения количества чтения и записи на диске. |
| «dht-enabled»: true, | Включить распределенную таблицу хэшей(DHT) |
| «download-dir»: «/home/Ваш_пользователь/Multimedia», | директория для скачанных файлов |
| «download-limit»: 100, | ограничение пропускной способности, KB/s |
| «download-limit-enabled»: false, | включение ограничения пропускной способности (по умолчанию = false) |
| «download-queue-enabled»: true, | Очередь. Когда true, transmission будет загружать только download-queue-size незавершенные торренты. |
| «download-queue-size»: 5, | Размер очереди. Количество загружаемых активных торрентов . |
| «encryption»: 1, | (0 = Предпочитают незашифрованные соединения, 1 = Предпочитают зашифрованные соединения, 2 = Требовать шифрованные соединения, по умолчанию = 1) Предпочтение шифрования . Шифрование может помочь обойти некоторую фильтрацию ISP, но ценой немного более высокой загрузки ЦП. |
| «idle-seeding-limit»: 30, | Остановить раздачу после простоя в течение N минут. |
| «idle-seeding-limit-enabled»: false, | Останавливать при простое. По умолчанию = false |
| «incomplete-dir»: «/home/Ваш_пользователь/Multimedia/.incomplete», | путь, где будут распологаться не довершившие закачку торренты. Точка впереди директории говорит что она должна быть скрыта |
| «incomplete-dir-enabled«: false, | хранить ли скачивающиеся файлы в отдельной папке (true/false) |
| «lpd-enabled»: false, | Включить обнаружения локальных BitTorrent-пиров, и, следовательно, сокращения трафика, проходящего через канал Интернет-провайдера и максимального использования пропускной способности |
| «message-level»: 2, | количество информации, выдаваемой в /var/log/syslog, значение можно менять 0 = None, 1 = Error, 2 = Info, 3 = Debug |
| «peer-congestion-algorithm»: «», | Алгоритм управления TCP описано на http://www.pps.jussieu.fr/~jch/software/bittorrent/tcp-congestion-control.html |
| «peer-limit-global»: 240, | Используемое количество пиров всего |
| «peer-limit-per-torrent»: 60, | Используемое количество пиров на один торрент |
| «peer-port»: 51413, | порт входящих соединений. Если вы за NAT’ом то позаботьтесь о пробросе этого порта |
| «peer-port-random-high»: 65535, | Верхняя граница портов |
| «peer-port-random-low»: 49152, | Нижняя граница портов |
| «peer-port-random-on-start»: false, | Менять рандомно порт при старте transmission |
| «peer-socket-tos»: «default», | параметр Type-Of-Service (TOS) для исходящих пакетов TCP. Возможные значения: «default», «lowcost», «throughput», «lowdelay» и»reliability». Значение «lowcost» рекомендуется, если вы используете интеллектуальный маршрутизатор |
| «pex-enabled»: true, | Включить расширение BitTorrent-протокола для обмена списками участников |
| «port-forwarding-enabled»: false, | Включить UPnP или NAT-PMP |
| «preallocation»: 1, | Влияет на фрагментацию записанных файлов (0 = Off, 1 = Fast, 2 = Full (медленнее, но уменьшает фрагментацию диска), по умолчанию = 1) |
| «prefetch-enabled»: true, | по умолчанию = true |
| «queue-stalled-enabled»: true, | Когда true, торренты, не закачивающие данные в течении queue-stalled-minutes , обрабатываются как «застопорены», очередь продвигается дальше. |
| «queue-stalled-minutes»: 30, | Время ожидания получения данных при закачке |
| «ratio-limit»: 2, | Лимит на отдачу (default = 2) |
| «ratio-limit-enabled»: false, | Включить лимит раздачи |
| «rename-partial-files»: true, | Менять расширение файла не докаченного файла на «.part» (true/false) |
| «rpc-authentication-required»: false, | требовать аутентификацию для удаленного управления |
| «rpc-bind-address»: «0.0.0.0», | IP адрес Transmission для входа через веб морду |
| «rpc-enabled»: true, | включение удаленного управления. Сюда же относится и управление через web-интерфейс |
| «rpc-password»: «Пароль», | Пароль для входа в web-интерфейс transmission-daemon. После сохранения настроик пароль будет зашифрован. |
| «rpc-port»: 9091, | порт к web-интерфейсу |
| «rpc-url»: «/transmission/», | настройка адреса web-интерфейса |
| «rpc-username»: «Пользователь», | Имя пользователя для входа в web-интерфейс transmission-daemon. |
| «rpc-whitelist»: «127.0.0.*,192.168.1.*», | список разрешенных ip адресов для доступа к web-интерфейсу |
| «rpc-whitelist-enabled»: true, | включение доступа с ip адресов да/нет (true/false) |
| «scrape-paused-torrents-enabled»: true, | по умолчанию = true |
| «script-torrent-done-enabled»: false, | Запуск сценария при завершении торрента |
| «script-torrent-done-filename»: «», | Путь к скрипту |
| «seed-queue-enabled»: false, | Когда true. Передача будет обрабатывать только seed-queue-size незастопоренные торренты. |
| «seed-queue-size»: 10, | количество |
| «speed-limit-down»: 1500, | ограничение скорости обычной загрузки |
| «speed-limit-down-enabled»: false, | включение ограничения обычной загрузки да/нет (true/false) |
| «speed-limit-up»: 1000, | ограничение скорости обычной отдачи |
| «speed-limit-up-enabled»: false, | включение ограничения обычной отдачи да/нет (true/false) |
| «start-added-torrents»: true, | Начать торренты, как только они будут добавлены |
| «trash-original-torrent-files»: true, | Удалить торренты, добавленные из каталога watch |
| «umask»: 18, | Устанавливает права на создаваемые файлы и папки |
| «upload-limit»: 100, | Ограничение раздачи, KB/s |
| «upload-limit-enabled»: 0, | Включить ограничение (0 или false — нет, 1 или true — да) |
| «upload-slots-per-torrent»: 14, | количество раздаваемых торрентов |
| «utp-enabled»: true, | Включить протокол микротранспорта (μTP) |
| «watch-dir»: «/home/Ваш_пользователь/Torrents», | директория с которой подхватывать торрент-файлы для скачивания |
| «watch-dir-enabled»: true | включает или отключает сканирование директории с файлами торрент |