Настройка сервиса 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.service
info: 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 | включает или отключает сканирование директории с файлами торрент |