Автор Тема: Transmission - торрент-клиент для FreeBSD c web-интерфейсом  (Прочитано 2788 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий

  • Global Moderator
  • Jr. Member
  • *****
  • Сообщений: 71
  • Country: ua
  • Karma: +1/-0
  • Пол: Мужской
  • ICQ: 41488731
Transmission - торрент-клиент для FreeBSD c web-интерфейсом
Поскольку все чаще и чаще необходимые файлы можно обнаружить только в  peer-to-peer сетях, решил на одном из ненагруженых серверов установить torrent-клиент, который работал бы круглосуточно. Выбор остановил на  transmission, поскольку управление даным torrent-клиентом можно выполнять через веб-интерфейс.

Выполним установку из системы портов:
Код: You are not allowed to view links. Register or Login
# cd /usr/ports/net-p2p/transmission-daemon
# make install clean

Внесем необходимые опции запуска в rc.conf:
Код: You are not allowed to view links. Register or Login
transmission_enable="YES"                                      # Запуск transmission
transmission_conf_dir="/usr/local/etc/transmission/"           # Каталог конфигурационных файлов
transmission_watch_dir="/usr/local/etc/transmission/torrents/" # Каталог для .torrent-файлов
transmission_download_dir="/incoming"                          # Каталог для загруженых файлов
transmission_user="transmission"                               # Имя пользователя, от имени которого будет работать transmission

Если опция запуска transmission_user не указана, то процесс запускается под пользователем transmission, а если задана пустой - тогда под root, что не рекомендуется. Также есть возможность указать дополнительные флаги запуска, воспользовавшись опцией запуска transmission_flags="".

Следующий шаг - создание каталогов и установка необходимых прав доступа. В процессе установки будет создан пользователь transmission. Если же хотите использовать другого пользователя - необходимо будет предварительно его создать.
Код: You are not allowed to view links. Register or Login
# mkdir -p /usr/local/etc/transmission/torrents
# mkdir /incoming/
# mkdir /usr/local/etc/transmission
# chown -R transmission:transmission /usr/local/etc/transmission/
# chown -R transmission:transmission /incoming

Пора приступать к созданию конфигурационного файла. Самый простой способ - запуск и останов transmission. В процессе запуска он проверит наличие необходимых файлов и в случае необходимости, создаст их.
Код: You are not allowed to view links. Register or Login
# sh /usr/local/etc/rc.d/transmission start
# sh /usr/local/etc/rc.d/transmission stop

После этого приступаем к редактированию конфигурационного файла settings.json, который будет создан в каталоге transmission_conf_dir. Немного подкоректировал дефолтный файл конфигурации. В результате имеем следующие параметры:
Код: You are not allowed to view links. Register or Login
{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/incoming/",
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/incoming/.incomplete",
    "incomplete-dir-enabled": true,
    "lpd-enabled": false,
    "message-level": 2,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 200,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 59999,
    "peer-port-random-low": 50000,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "pidfile": "/var/run/transmission/daemon.pid",
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "prefetch-enabled": 1,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "very_hard_pawssword",
    "rpc-port": 9095,
    "rpc-url": "/transmission/",
    "rpc-username": "muff",
    "rpc-whitelist": "127.0.0.1,192.168.*.*",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true,
    "watch-dir": "/usr/torrents/.torrents/",
    "watch-dir-enabled": true
}

Значительная часть опций понятна и без комментариев. Рассмотрим некоторых из опций.

    alt-speed-enabled - альтернативные настройки скорости;
    alt-speed-time-begin - время в минутах от полуночи до начала действия альтернативных правил;
    alt-speed-time-day - битовая маска дней, по которым действуют правила
        Sunday: 1 (binary: 0000001)
        Monday: 2 (binary: 0000010)
        Tuesday: 4 (binary: 0000100)
        Wednesday: 8 (binary: 0001000)
        Thursday: 16 (binary: 0010000)
        Friday: 32 (binary: 0100000)
        Saturday: 64 (binary: 1000000)
        Например:
        Рабочие дни: 62 (binary: 0111110)
        Выходные: 65 (binary: 1000001)
        Все дни: 127 (binary: 1111111)
         
    alt-speed-time-enabled - альтернативные настройки скорости в зависимости от времени суток;
    alt-speed-time-end - время в минутах от полуночи до окончания действия альтернативных правил;
    bind-address-ipv4 - на каком IPv4 адресе "биндить" демон;
    rpc-authentication-required - обязательна ли аутентификация для подключившихся;
    rpc-bind-address - на каком  IPv4 адресе "биндить" удаленный доступ;
    rpc-enabled - включение удаленного доступа;
    rpc-password - пароль для подключения; хешируется после рестарта;
    rpc-port - на каком порту "слушать" запросы к RPC
    rpc-url - по какому адресу ожидать запросов;
    rpc-username - имя пользователя для подключения;
    rpc-whitelist - перечень IP-адресов, разделенных запятой, для которых разрешены удаленные подключения;
    rpc-whitelist-enabled - включать ли rpc-whitelist 

Попытаемся запустить transmission:
Код: You are not allowed to view links. Register or Login
# sh /usr/local/etc/rc.d/transmission start
Сервис успешно стартовал. Если же нет - ищем в логах причину ошибки. Также после успешного старта можно обнаружить такие записи в /var/log/messages:
Код: You are not allowed to view links. Register or Login
... UDP Failed to set send buffer: No buffer space available ...
... UDP Failed to set receive buffer: No buffer space available ...

Исправить эту ситуацию можно увеличив максимально допустимый размер приемного буфера операционной системы:
Код: You are not allowed to view links. Register or Login
# echo 'kern.ipc.maxsockbuf=2097152' >> /etc/sysctl.conf
# sysctl kern.ipc.maxsockbuf=2097152

Либо же, как вариант, можно в settings.json переменную utp-enabled выставить в значение "falce".

ВАЖНО!
В случае необходимости внесения  изменений в файл конфигурации settings.json, предварительно необходимо остановить transmission.

После запуска сервиса можно заходить на веб-интерфейс, используя логин и пароль, указанный в конфигурационном файле. Пройдя авторизацию, нам будет доступен демон по web интерфейсу.



Думаю с основными возможностями предоставленного интерфейса разобраться не составит труда.

Кстати, transmission дает довольно большое поле для творчества, разрешая запуск внешних скриптов.

Доступные переменные:

    $TR_APP_VERSION - версия transmission
    $TR_TORRENT_ID - id торрента, как оно показывается в remote-GUI
    $TR_TORRENT_NAME - имя торрента как оно отображается в интерфейсе
    $TR_TORRENT_DIR - директория торрента
    $TR_TORRENT_HASH - хэш торрента
    $TR_TIME_LOCALTIME - дата и время запуска стрипта

Например, сделаем так, что по завершению закачки на почту будет приходить уведомление.
Для этого напишем скрипт finish.sh следующего содержания:
Код: You are not allowed to view links. Register or Login
#!/bin/sh

echo $TR_TIME_LOCALTIME - $TR_TORRENT_NAME Downloaded | mail -s "Torrent download successfull" /
root [at] domain [dot] com (root [at] domain [dot] com)

exit 0;

Остановим transmission и внесем необходимые изменения в settings.json:
Код: You are not allowed to view links. Register or Login
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/usr/local/etc/transmission/finish.sh",

После этого снова запускаем transmission.

взято с You are not allowed to view links. Register or Login


« Последнее редактирование: Января 15, 2014, 05:33:04 pm от Дмитрий »


  • 1o1o1@jabber.fr
Contact You are not allowed to view links. Register or Login