- Transmission-daemon
- Содержание
- Установка
- Настройка
- Наведение «марафета»
- Настройка settings.json
- Настройка Transmission daemon: settings.json. Описание всех настроек.
- Многопользовательская торрент-качалка на transmission
- Введение, для тех, кто не знаком с тем, что такое transmission-daemon
- Проблема:
- Способ решения
- Решение
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: 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
По окончании всех настроек запускаем службу
Многопользовательская торрент-качалка на transmission
Введение, для тех, кто не знаком с тем, что такое transmission-daemon
Одним из распространенных торрент-демонов является transmission-daemon. Для него есть множество GUI-клиентов для разных платформ, которые работают по http и могут подключаться к качалке удаленно, что очень удобно. Использование такого клиента для пользователя не будет отличатся от обычных торрент-клиентов, при этом если клиент закрыть, скачивание/раздача не прекращается, а продолжается на удаленной машине-сервере. Так же у transmission-daemon есть свой «стандартный» web-интерфейс.
Проблема:
И все было бы хорошо, но transmission-daemon хоть и предусматривает авторизацию, но только для одного пользователя. Поэтому если Вы захотите, что бы вашей торрент-качалкой пользовался кто-то еще кроме Вас, то прийдется делить один аккаунт — вы оба сможете просматривать и управлять закачками друг друга, что не очень удобно.
Способ решения
Самым очевидным простым и элегантным, на мой взгляд, решением является запуск transnmission одновременно от разных пользователей. В данном случае в качестве ОС применяется Ubuntu Server 12.10, поэтому можно создать отдельный Upstart User Job для каждого пользователя. Для других дистрибутивов вместо этого можно просто создать init.d скрипты.
Решение
Подготовим систему:
установим transmission-daemon:
sudo apt-get install transmission-daemon
Разрешим выполнение пользовательских демонов или User Jobs, для этого нужно заменить файл «/etc/dbus-1/system.d/Upstart.conf», предварительно сделав бекап старого.
sudo mv /etc/dbus-1/system.d/Upstart.conf /etc/dbus-1/system.d/Upstart.conf.save
новый файл /etc/dbus-1/system.d/Upstart.conf:
Дальше стоит выключить стандартный demon, который запускается от рута при старте системы:
Настройка конкретного пользователя:
создаем Upstart User Job
Логинимся под очередным юзером, который будет использовать transmission-daemon и выполняем скрипт:
Скрипт создаст файл
/.init/transmissiond-$USER.conf с необходимыми настройками пользовательского демона.
Поле на которое стоит обратить внимание — это «start«. В данном случае Job будет стартовать только в случае, если пользователь залогинился в систему, что вовсе не обязательно. Однако, если установлено шифрование домашнего каталога — необходимо, иначе некуда будет сохранять скачанное. Если директория скачивания доступна и до логина пользователя, то «start on $USER-logged-in» можно заменить на «start on runlevel [2345]» . В таком случае, однако, Job не нужно делать пользовательским, а можно расположить в /etc/init/
Настраиваем env user-demona:
Создаем файл настроек торрент-клиента
Не забудьте заменить pass=»*****» на свой пароль. После первого запуска transmission сам скроет пароль хешем — в открытом виде не хранит.
Каждый торрент-демон будет висеть на своем отдельном порте, как для входящих торрент-соединений, так и для управления-интерфейса. Номер порта (веб интерфейс) конкретного пользователя вычисляется по формуле rpc-port = 9091 + $uid — 1000 Таким образом пользователь с uid 1000 сможет зайти на веб-интерфейс по server:9091 , а пользователь с uid 1010 — по server:9101 . peer-port вычисляется аналогично.
Все недокачанные торренты будут лежать в
/downloads/incomplete, а готовые — в
В том случае, если используется, шифрование домашней директории пользователя, нужно что бы демон стартовал только когда пользователь залогинен, поэтому добавляем в конце .bashrc соответсвующий ивент, что бы Upstart знал, что пора запускать transmission:
и еще, наверное, желательно что бы если юзер сделал логаут — демон продолжал крутиться:
mv «$HOME/.ecryptfs/auto-umount» «$HOME/.ecryptfs/_auto-umount»
По желанию можно также сделать проксирование через nginx/apache что бы разные пользователи могли заходить на интерфейс через разные домены, например.