Что это и зачем
Transmission-daemon это торрент-клиент работающий в фоне; управление осуществляется посредством web-клиента. Наша задача установить transmission-daemon на сервер (Ubuntu server 20.04), где он будет работать в фоновом режиме. Так же, он будет в автоматическом режиме сканировать и подбирать торренты помещенные в папку /torrents и закачивать их в папку /downloads.
План
Установка transmission-daemon из репозитория;
Создание отдельного пользователя для запуска transmission-daemon. Включение пользователей взаимодействующих с Transmission в группу transmission-daemon.;
Создание папок /torrents и /downloads;
Создание папки для файлов локальной настройки у пользователя и копирование settings.json;
Настройка файла /etc/default/transmission-daemon;
Переопределение пользователя запускающего transmission-daemon;
Настройка файла settings.json;
Подключение к transmission-daemon по web-интерфейсу.
1. Установка
Transmission-daemon имеется в стандартном репозитории Ubuntu. Установка из репозитория Ubuntu (от пользователя с административными правами):
sudo apt install transmission-daemon
После установки приложение будет сразу запущено. Так же автоматически создается пользователь debian-transmission (или подобный в зависимости от версии), данный пользователь управляет всеми процессами transmission, поэтому все пользователи использующие transmission должны быть включены в его группу.
Для дальнейшей настройки останавливаем Transmission-daemon
# остановить сервис
sudo systemctl stop transmission-daemon.service
# проверить состояние
sudo systemctl status transmission-daemon.service
Расположение конфигурационных файлов transmisson-daemon:
файл инициализирующий старт демона:
/etc/init.d/transmission-daemon
Файл конфигурации:
/etc/default/transmission-daemon
Файл global settings:
/etc/transmission-daemon/settings.json
Файл local settings:
~/.config/transmission-daemon/settings.json
2. Создание пользователя для запуска Transmision
В нашем случае для управления transmission-daemon мы создадим отдельного пользователя от имени которого и будет работать этот сервис.
sudo adduser server
# во время установки автоматически создается пользователь debian-transmission в # его группу надо добавить нового пользователя
sudo usermod -aG debian-transmission server
В первой строке создаем нового пользователя и его домашнюю папку. Во второй добавляем его в группу debian-transmission. Также в группу debian-transmission следует добавить и других пользователей которые будут как-либо работать с файлами или торрентами.
3. Создание папок /torrents и /downloads
Создадим папки для торрентов и загрузок и установим соответствующие права.
sudo mkdir -m 775 /home/server/torrents
sudo mkdir -m 775 /home/server/downloads
sudo chown server:server /home/server/torrents
sudo chown server:server /home/server/downloads
4. Создание папки для файлов локальной настройки у пользователя и копирование settings.json
В папке /etc/transmission-daemon/ лежат файлы конфигурации transmission-daemon по умолчанию, для того чтобы создать конфигурацию используемую с нашим вновь созданным пользователем нужно скопировать файлы конфигурации в домашнюю папку пользователя/home/server/.config/ (или любую другую, путь к нему мы укажем дальше) и установить права позволяющие участникам группы debian-transmission изменять и читать их.
sudo cp -R /etc/transmission-daemon/ /home/server/.config/
sudo chmod -R 775 /home/server/.config
Файл который нам необходим называется setting.json. В этом файле находятся все настройки transmission-daemon. К его настройке мы вернемся в конце, когда будем делать окончательную настройку сервиса.
5. Настройка файла /etc/default/transmission-daemon
Для того, чтобы использовать файл настроек из /home/transmission/.config/settings.json, необходимо указать его местоположение в файле /etc/default/transmission-daemon
# defaults for transmission-daemon
# sourced by /etc/init.d/transmission-daemon
# Change to 0 to disable daemon
ENABLE_DAEMON=1
# Здесь нужно указать путь к файлу настроек
# /etc/transmission-daemon/settings.json
CONFIG_DIR="/home/server/.config/transmission-daemon/settings.json"
# Default options for daemon, see transmission-daemon(1) for more options
OPTIONS="--config-dir $CONFIG_DIR"
# (optional) extra options to start-stop-daemon
#START_STOP_OPTIONS="--iosched idle --nicelevel 10"
6. Переопределение пользователя запускающего transmission-daemon
Далее настраиваем файл инициализации /etc/init.d/transmission-daemon в USER указываем имя пользователя от имени которого будет запускается сервис
NAME=transmission-daemon
DAEMON=/usr/bin/$NAME
USER=server
STOP_TIMEOUT=30
правильно это сделать через переопределение:
Делать это нужно при запущенном сервисе. После того как мы убедились что сервис запущен. Приступаем к переопределению конфигурации сервиса. Файл в котором конфигурируется запуск сервиса находится в /etc/systemd/system/transmission-daemon.sevice.d/override.conf
возможны два варианта действий:
Вариант 1. можно внести изменения в сам файл override.conf , делать это нужно с правами администратора.
Вариант 2. Используем команду:
sudo systemctl edit transmission-daemon.service
откроется редактор в котором нужно добавить следующие параметры
[Service]
User=<username>
и сохранить изменения.
7. Настройка файла settings.json
!!! Перед внесением изменений в settings.json, клиент и демон должен быть закрыт и остановлен, в противном случае параметры будут возвращены в предыдущее состояние.
Поэтому всегда перед изменении настроек в файле необходимо остановить службу transmission-daemon :
sudo service transmission-daemon stop
Что нам необходимо настроить обязательно:
папку куда будут закачиваться файлы
папка из которой будут подхватываться torrent'ы
url и порт доступа к web-интерфейсу Transmission-daemon
пользователя и пароль для доступа к web-интерфейсу
1. Установка папки download
"download-dir": "/home/server/downloads",
2. Установка папки для торрентов
"watch-dir-enabled": true,
"watch-dir": "/home/server/torrents"
первая опция активирует отслеживание папки с торрентами, вторая устанавливает путь к отслеживаемой папке. После запуска Transmission-daemon будет отслеживаться эта папка и как тольке в ней появиться новый торрент начнется его скачивание.
3. Настройка url web-интерфейса и установка имени и пароля
"rpc-password": "{80ca2ab57b39fa2f949365bf0256b85afdc49a354MayeihV",
rpc-password между кавычками вставляем пароль в текстовой форме, при запуске демона он будет изменен на хеш пароля
"rpc-port": 9091,
rpc-port на каком порту работает web-интерфейс
"rpc-url": "/transmission/",
rpc-url постфикс адреса url (192.168.0.10/transmission/)
"rpc-username": "User",
rpc-username имя пользователя для доступа к web-интерфейсу
"rpc-whitelist": "127.0.0.1,192.168.1.*",
rpc-whitelist список адресов имеющих доступ к web-интерфесу
"rpc-whitelist-enabled": true,
rpc-whitelist-enabled вкл/выкл использование "белого" списка адресов
По окончании всех настроек запускаем службу
sudo service transmission-daemon start
Настроек у transmission множество, краткое описание других параметров settings.json найденное https://pcminipro.ru/os/nastrojka-transmission-daemon-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 |
«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, | |
"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 | включает или отключает сканирование директории с файлами торрент |
Подключение к Web-интерфейсу
Если в конфигурационном файле settings.json все сделано правильно и демон запущен, то в любом браузере подключаемся к нему введя в адресную строку <host>:9091/transmission/, и видим привычный интерфейс. Не забывайте о том, что если включён фильтр по белому списку, то адрес с которого происходит подключение должен быть в него внесен.

настройка закончена.