- Transmission-daemon
- Содержание
- Установка
- Настройка
- Наведение «марафета»
- Настройка settings.json
- Transmission daemon windows что это
- Настройка Transmission daemon: settings.json. Описание всех настроек.
- Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE
- Предисловие
- Установка и настройка Torrent сервиса Transmission-daemon
- Дополнительная настройка nginx для Transmission
- Удаленное управление Transmission
- Применение Transmission Remote GUI
- Применение приложения на Android, iOS
- Скрипты обработки торрентов для Transmission-daemon
- Скрипт torrentdone.sh
- Скрипт torrentclear
- Ротация логов logrotate.d/transmission
- Заключение
Transmission-daemon
Содержание
Основное отличие данной программы от Transmission заключается в том, что это демон, а значит работает в фоне и всегда.
Установка
Настройка
Главный минус работы с ненастроенным transmission-daemon- это невозможно им управлять, потому что по умолчанию к нему нельзя подключаться web интерфейсом или сторонними программами. При настройке необходимо помнить, что конфигурационный файл нельзя менять, пока служба transmission-daemon работает, потому что при остановке он восстановит его первоначальное (которое было при запуске) состояние и все ваши старания накроются медным тазом. Поэтому ВСЕГДА перед началом настройки необходимо остановить службу
Наведение «марафета»
Смысл описанных ниже телодвижений — заставить службу работать от имени пользователя, а значит и создавать скачиваемые файлы, владельцем которых сразу будет наш пользователь, что убережёт нас от последующих проблем с доступом к файлам.
Переносим папку с основными файлами в домашнюю папку пользователя
И в строке CONFIG_DIR прописываем путь до папки с файлами настройки.
Принуждаем работать службу от нашего пользователя:
если используется init.d
Меняем setuid (NAME) debian-transmission и setgid (USER) debian-transmission на имя своего пользователя.
если используется systemd
Меняем значение переменной User за свое
затем делаем перезагрузку юнитов
Настройка settings.json
Пример файла с настройками
В полях rpc-username и rpc-password задается логин и пароль соответственно, а так же в поле rpc-whitelist дописываем свой внешний IP если есть, чтобы получить доступ к Transmission на сервере. Если у Вас динамический IP, то можно отключить проверку IP. Для этого нужно в поле rpc-whitelist-enabled поставить значение false. По окончании всех настроек запускаем службу
Transmission daemon windows что это
Для небольшого домашнего сервера под управление операционной системы Windows 10, на мой взгляд самым удобным торрент-клиентом является Transmission.
Главными удобствами является малая затрата ресурсов и возможность рабобы в виде фоновой службы (с возможностью удалённого доступа).
В моём случае реализация такова:
1. Скачиваем свежий дистрибутив с официального сайта — https://transmissionbt.com/download/
2. Во время установки указываем установить службу
3. После установки — запускаем графическую оболочку Transmission Qt Client и настраиваем «по вкусу» (в том числе параметры удалённого доступа и логин/пароль). Эти настройки сохраняются в файл %LOCALAPPDATA%/transmission/settings.json Но это настройки только для приложения, запущенного от имени данного пользователя.
4. Для настройки службы нужно её остановить (в списке служб — Transmission Daemon) и после этого копируем настроенный файл из предыдущего пункта в папку C:\Windows\ServiceProfiles\LocalService\AppData\Local\transmission-daemon (с заменой). После этого можно запустить службу.
Итог. При запущенном клиентском приложении — выполняются настройки приложения. Когда приложение закрыто — выполняются настройки службы.
В большинстве случаев я пользуюсь только службой, работая с Transmission через удалённый доступ.
Для удалённого доступа можно использовать встроенный WEB-интерфейс, но я предпочитаю приложение Transmission Remote GUI
Настройка Transmission daemon: settings.json. Описание всех настроек.
Не всегда возможно установить все конфигурации из графического интерфейса, особенно на Daemon или в веб-интерфейсе. Это руководство попытается дать обзор настроек Transmission.
Перед внесением изменений клиент и демон должен быть закрыт и остановлен, в противном случае параметры будут возвращены в предыдущее состояние.
Поэтому всегда перед изменении настроек в файле необходимо остановить службу transmission-daemon :
В таблице представлены расположения файлов с различными настройками Transmission:
Настройки | Где находятся |
---|---|
GTK+/Qt настройки клиента | $HOME/.config/transmission |
Настройки демона | $HOME/.config/transmission-daemon |
CLI настройки | $HOME/.config/transmission-cli |
Папка загрузки по умолчанию | $HOME/Downloads |
Примерный путь расположения конфигурационного файла settings.json :
В данном файле находится множество настроек:
«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
По окончании всех настроек запускаем службу
Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE
Приветствую, уважаемые читатели на четвертой части цикла!
Предисловие
По аналогии с предыдущей статьей, мы установим LXC контейнер и в нем установим и настроим “торрент качалку” Transmission
Официальный сайт: transmissionbt.com
Вы спросите: “А чем не устраивает торрент на обычном ПК?”
Так вот тем, что это не удобно при работе с локальным сервером. Да, варианты есть, но если честно… такое себе.
Гораздо удобнее, когда скачивание идет сразу на сервере и более того, я могу подключаться к своей системе не только через Desktop приложение, но и через мобильное приложение.
Т.е. фактически из любого места где есть интернет. А про локальную сеть я уже молчу )
Также в моей топологии сети, при этом, не задействуется Wi-Fi, все скачивание и раздача идет по кабельному каналу. (У меня тариф 500 Мбит/сек)
Это значит, что я также расскажу, как использовать приложение Transmission GUI на ПК и Transmission Remote на Android.
Ну и как бонус покажу немного автоматизации обработки торрентов. Мы ведь не хотим сами создавать все эти папки согласно иерархии хранения? 🙂
Кому стало интересно, приятного чтения .
Be careful! Много текста и работы с терминалом!
Установка и настройка Torrent сервиса Transmission-daemon
Процесс установки контейнера я опущу т.к. он разбирался в статье: Домашний Сервер: Часть 3 – Внутренний DNS сервис на BIND9 или свои доменные имена в локальной сети
Принцип аналогичен, разве что параметры контейнера можно немного изменить:
Memory – 2.00 GiB
DNS – 192.168.88.7, 192.168.88.1 (помним, что мы запустили свой DNS)
Самый важный момент!
Нам необходимо сохранять файлы на RAID массив, который мы создали в процессе установки и настройки основной хост системы.
Но перед этим необходимо определиться со структурой хранения данных.
Для себя я определил следующую структуру:
Далее будем следовать данной структуре.
Как можно видеть, я создал специальную папку media для хранения всей мультимедиа информации.
И пока мы не запустили наш контейнер вопрос: “Как подключить массив к контейнеру?”
Делается это достаточно просто. Переходим в консоль основного сервера pve1
Основная консоль сервера PVE1
Настройки LXC контейнеров лежат по пути:
/etc/pve/lxc/
А там уже файлы конфигураций согласно номеру контейнера 100.conf, 101.conf и т.д.
Открываем файл настроек нашего контейнера:
Номер 100.conf это наш контейнер под DNS, а новый созданный это 101.conf
Добавляем в него такую строку:
Т.е. у нас будет доступ из контейнера в файловую систему хостовой машины через точку монтирования(mp = Mount Point), при этом нам самим не нужно ничего монтировать, система сама обо всем позаботится.
В контейнере файлы мы будем сохранять по пути /mnt/data
Вы можете указать свой путь, как вам нравится.
Я же, создал базовую папку /rpoolz/data в которой будут храниться мои файлы
Запустим контейнер и перейдем к установке и настройке Transmission уже непосредственно внутри контейнера
Проверим смонтированную папку
Создадим базовые папки
Обновим контейнер и установим transmission-daemon
Остановим сервис, для изменения настроек
Производим настройки transmission-daemon
Открываем файл настроек:
Файл настроек представлен в формате JSON, необходимо поправить ряд параметров:
- “cache-size-mb”: 100
- “download-dir”: “/mnt/data/download” – директория, куда будут сохраняться загружаемые файлы
- “download-queue-enabled”: true
- “download-queue-size”: 5
- “incomplete-dir”: “/mnt/data/download/incomplete” – директория, где будут располагаться скачанные файлы не завершенных торрентов
- “incomplete-dir-enabled”: true
- “peer-port”: 13003
- “preallocation”: 2
- “ratio-limit”: 2
- “ratio-limit-enabled”: true
- “rpc-password”: “123456” – пароль для программ удаленного доступа
- “script-torrent-done-enabled”: true
- “script-torrent-done-filename”: “/etc/transmission-daemon/torrentdone.sh” – для чего это нужно читайте в отдельном разделе ниже Скрипты обработки торрентов для Transmission-daemon
- “seed-queue-enabled”: true
- “seed-queue-size”: 5
- “umask”: 0 – Файлы будут сохраняться с маской 777, т.е. будут доступны для всех (чтение, удаление). Это важно!
Сохраняем настройки и запускаем transmission-daemon
Если видим в ответе netstat слова “transmission“, значит сервис точно запущен и работает.
На этом настройку можно считать завершенной.
Дополнительная настройка nginx для Transmission
Стандартно ставим nginx
Удаляем базовый сайт
После этого можно обращаться к transmission и rpc по доменному имени.
Теперь перейдем к средствам удаленного управления.
Удаленное управление Transmission
Transmission удобен тем, что работает на сервере в виде службы и потребляет минимум ресурсов. Также основной ПК освобождается от торрента и хранимых медиа файлов )
Для управления можно использовать утилиту для Windows x86, Windows x64, Linux x86, Linux x64, Linux на ARM6L, Linux на ARM7L, MacOS (.dmg пакет)
Для Android и iOS также существуют приложения разработанные сторонними разработчиками
Даже на мощных роутерах таких компаний как Asus иногда можно встретить Torrent качалку на базе Transmission.
Т.е. это говорит о высокой интеграции данного сервиса во все известные системы и эта кроссплатформенность дает нужное удобство.
Рассмотрим приложения на базе Windows и Android. С остальными системами полагаю будет аналогично.
Применение Transmission Remote GUI
Что такое Transmission Remote GUI?
Transmission Remote GUI на Windows 10 Transmission Remote GUI – это многофункциональный кроссплатформенный интерфейс для удаленного управления демоном Transmission через его протокол RPC. Он быстрее и обладает большей функциональностью, чем встроенный веб-интерфейс Transmission.
Transmission Remote GUI разработан с использованием Lazarus RAD и компилятора Free Pascal.
Обладает интерфейсом почти как у uTorrent (uTorrent-like interface)
Transmission Remote GUI можно скачать на гитхабе в разделе с релизами:
github.com/transmission-remote-gui/transgui/releases
По той же ссылке располагаются варианты для других систем, они там все скопом.
Установка и настройка выполняется как с обычной программой.
Я скачиваю exe файл, устанавливаю, запускаю и иду в настройки приложения.
Путь к настройкам приложения
Настройки для transmission с настроенным nginx Далее вы уже можете производить индивидуальные настройки аналогично обычному торрент клиенту по типу того же uTorrent.
И еще, как вы могли заметить программа поддерживает Русский язык, что конечно радует 🙂
Теперь перейдем к мобильной части…
Применение приложения на Android, iOS
Я опишу одно приложение, которым пользуюсь сам и т.к. у меня телефон на дройде, то прошу владельцев iOS не переживать. Полагаю для яблочных систем должно быть аналогично.
Оно так и называется Transmission Remote.
Чтобы не ошибиться, вот ссылка на приложение: Transmission Remote
Вот немного скриншотов
Мне достаточно зайти на нужный сайт, скачать торрент файл и запустить его выбрав это приложение. Сервер далее уже сам все сделает.
Можно спокойно закрыть приложение, по окончании скачивания придет push уведомление об окончании.
За время скачивания можно налить чаю, устроиться поудобнее и запустить кино/сериал на просмотр 🙂
Скрипты обработки торрентов для Transmission-daemon
А теперь настала пора автоматизации.
Скажите, вам ведь не хочется самостоятельно раскладывать каждый файл фильма или сериала по папкам? Если не хочется, то вы можете либо свалить все в кучу и тогда в один прекрасный день будет такая же история, как у многих с музыкой в начале 2000х 🙂
Было бы здорово, чтобы фильмы хранились с определенной иерархией. В начале статьи мы определили иерархию для хранения фильмов в 2D, в 3D и сериалов, но как заставить Transmission самостоятельно их переносить в нужные папки сразу после окончания и при этом не переставать раздавать в самой программе?
Как заставить торренты удаляться после наступления определенных условий, скажем рейтинг скачал/отдал был бы равен 2, а если рейтинг никогда не доберется до значения 2, то удалить торрент через 7 дней после добавления?
Как видим задач для автоматизации не много. Приступить к созданию автоматической обработки торрентов меня подтолкнула строка в настройках transmission-daemon
“script-torrent-done-filename”: “”
Тут мы можем указать путь к файлу, который transmission-daemon исполнит по окончании загрузки торрента, при этом он передаст скрипту некоторые переменные, чтобы в скрипте ими можно было пользоваться.
Скажу сразу, мой скрипт можно дорабатывать, возможно с некоторыми пунктами в нем вы будете не согласны, но написание красивого кода я своей целью не ставил, целью было выполнение нужных функций и скрипт с этим прекрасно справляется.
Я загрузил файлы на Github. Там вы можете скачать последние версии данных файлов.
Вот ссылка: https://github.com/GregoryGost/Transmission
Кратко опишу, какой файл, что делает:
Скрипт torrentdone.sh
Данный скрипт необходимо поместить в папку /etc/transmission-daemon
После скачивания разрешаем файл на выполнение.
Скрипт определяет, что мы скачиваем, файл или папку с файлами и переносит файл(файлы) по месту их хранения.
Из определений, есть определение сериал это или фильм. И для фильмов есть разделение 2D или 3D фильм.
Скрипт также создает все необходимые пути согласно принятой мной системе хранения.
Замечательно, фильмы и сериалы сами складываются в нужные папки, скачивание идет, мы можем удаленно управлять всем этим.
Осталось сделать так, чтобы торренты сами еще и удалялись, но конечно без удаления самого скачанного файла!
Для этого мы используем старый добрый Cron
Скрипт torrentclear
Файл необходимо положить в папку Cron /etc/cron.hourly, где он будет выполняться каждый час.
После скачивания разрешаем файл на выполнение.
Проверка каждого торрента проводится с помощью консольной утилиты transmission-remote
Вот мы и закончили с автоматизацией обработки торрентов.
Теперь торренты будут удаляться автоматически и у нас не будет болеть голова об этом. Просто добавили и все.
Ротация логов logrotate.d/transmission
Дополнительно можно автоматизировать обработку создаваемых лог файлов. Т.е. обеспечить их ротацию.
Скачиваем файл с настройками
logrotate будет следить за тем, чтобы лог файл не превышал размер 10 Mb. А если и превысит, то он создаст отдельный файл со старым логом.
А еще позже будет уже сжимать совсем старые логи в архивы.
Заключение
Что хотелось бы сказать в заключении – а сказать особо и нечего, я все постарался описать в самой статье.
С помощью функционала Proxmox я реализовал торрент качалку в LXC контейнере, в которую можно добавлять торренты по дороге домой с работы, чтобы вечером с женой/детьми/родственниками/друзьями сесть за хороший фильм или сериал.
Такое решение сильно упрощает управление скачиванием и сохранением медиа файлов. Она работает автоматически в том числе на распределение файлов по нужным папкам, чистит торренты, чтобы они не занимали ресурсы системы.
В общем и целом я считаю, что своей цели в этой статье я достиг. Буду ждать от вас интересных идей для развития данной системы, в особенности скриптов по автоматизации 😉
Ну и конечно делитесь своими фишками, хаками, способами использования Transmission в комментариях!
Благодарю за ваше время!
Всего хорошего на просторах Интернета 😉
UPD 21.03.2020:
Изменен раздел “Скрипты обработки торрентов для Transmission-daemon” т.к. были обновлены скрипты.