Что это и зачем
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/, и видим привычный интерфейс. Не забывайте о том, что если включён фильтр по белому списку, то адрес с которого происходит подключение должен быть в него внесен.

настройка закончена.
ссылка на оригинал статьи https://habr.com/ru/post/658463/
Добавить комментарий