Торрент-клиент transmission – установка на DIR-620 под управлением dd-wrt

Итак, на роутер D-Link DIR-620 была установлена прошивка dd-wrt (с поддержкой swap, это важно), подключены флешка для хранения настроек и установленных программ и внешний жесткий диск в качестве NAS и хранилища закачек для torrent-клиента. Дело за малым – установить и настроить сам клиент. Я выбирал между консольными клиентами rtorrent и transmission, в результате остановился на последнем. Популярные Deluge отпал сразу – тратить скромные ресурсы роутера на обслуживание еще и интерпретатора питона нет смысла. Про rtorrent попались сообщения о наличии в нем утечек памяти, что не есть хорошо. Кроме того, его нужно запускать при помощи screen или dtach, т.к. режима демона он не имеет. А это опять трата лишних ресурсов. Сам-собой остался transmission, умеющий работать в виде демона и достаточно стабильный. Кроме того, помимо нескольких GUI-фронтэндов у него есть встроенный веб-интерфейс – бери и пользуйся, без лишних телодвижений.

Установка transmission на dd-wrt

Установка торрент-клиента transmission (daemon) на роутер под управление dd-wrt проста до неприличия – достаточно, подключившись например по ssh к роутеру, выполнить следующие команды:

  • ipkg-opt update – обновит список пакетов, доступных для установки;
  • ipkg-opt list | grep transmission – выбираем, какую версию клиента ставить (есть сборка клиент + утилиты для создания и редактирования торрентов + демон, есть отдельно демон);
  • ipk-opt install transmission – я установил пакет, включающий, помимо демона, утилиты для работы с торрент-файлами.

Всё предельно просто, теперь нужно немного настроить transmission-daemon, дописать его в автозагрузку – и можно начинать пользоваться. О настройке дальше и идет речь.

Итак, первым шагом, который необходимо предпринять, будет создание рабочей директории для демона, в ней же будет храниться и файл настроек. Умолчальная рабочая директория находится в памяти роутера и при перезагрузке будет уничтожена. Я создал директорию на подключенной к роутеру флешке: mkdir /opt/etc/transmission.

Теперь можно запустить transmission-daemon с ключем, указывающим на новую рабочую директорию (а также прописать его в автозагрузку через веб-интерфейс dd-wrt: Administration -> Commands -> Startup). Запускаем следующим образом: /opt/bin/transmission-daemon -g /opt/etc/transmission. Демон создаст файл настроек settings.json, который и нужно будет отредактировать (об этом ниже).

Включение retracker.local в dd-wrt

Полезным шагом для ускорения загрузки торрент-раздач станет включение retracker.local – торрент-трекера, находящегося внутри локальной сети провайдера (если конечно провайдер предоставляет подобный функционал). После его включения торрент-клиент сможет получать от локального трекера списки внутрилокальных пиров и при их наличии скачивать файлы на скоростях локальной сети.

Чтобы включить retracker.local и вообще все локальные ресурсы в dd-wrt (или openwrt) в случае некоторых провайдеров (например – InterZet) – нужно отключить опцию rebind_protection в настройках роутера (Services -> Services -> No DNS Rebind переключить в Disable). После этого DNSMasq перестанет блокировать DNS-имена в локальной сети.

Еще один вариант – можно в окно ввода Additional DNSMasq Options добавить адреса нужных локальных ресурсов при помощи опции rebind_domain.

Настройки transmission-daemon – settings.json

Некторые настройки можно сделать через веб-интефейс, заодно убедившись в работоспособности демона. В него можно попасть, введя ip_роутера:порт/transmission в браузере. В дальнейшем адрес веб-интерфейса можно поменять в том же /opt/etc/transmission/settings.json. Он доступен только для чтения, так что проще всего снять копию, изменить к ней права доступа на нужные, а затем, остановив демон (killall transmission-daemon), переписать изменнённый файл поверх оригинального. Мой файл настроек для transmission выглядит так:

JSON-парсер transmission не поддерживает разбор комментариев (или я не нашел, как их обозначить в понятном ему виде), так что я прокомментирую некоторые строки своего settings.json ниже.

  • “ratio-limit”: 2.5000 – прекращать раздачу при достижении указанного рейтинга;
  • “cache-size-mb”: 4 – объем памяти (Мб), выделяемый демону под кэшировние данных о торрентах (на роутере лучше много не давать – просто не из чего);
  • “lpd-enabled”: true – включает локальный поиск пиров;
  • “umask”: 0 – выставляет для загружаемых папок и файлов права на чтение и запись для всех (права выставляются в десятеричной системе, так что нужно восьмеричное представление перевести в десятеричное);
  • “peer-congestion-algorithm”: “lp”, включает использование специальной версии протокола TCP, предназанченной для обмена пирами, в этом случает трафик обмена пирами будет иметь пониженный приоритет по отношению к обычному трафику – обмен пирами не будет замедлять загрузку страниц и т.п.;
  • “pex-enabled”: true включает обмен пирами с уже подключенными пирами, т.е. обмен списками пиров происходит между самими пирами, без участия трекера;
  • “watch-dir” и “watch-dir-enabled”: true – позволяют указать директорию слежения, найденные в ней torrent-файлы будут автоматически довалены в очередь загрузки;
  • “script-torrent-done-enabled”: false и “script-torrent-done-filename” – позволяют задать выполнение произвольного скрипта после завершения загрузки, например таким образом можно переименовывать или перемещать загруженные файлы;
  • “rpc-enabled”: true – включает/выключает интерфейс удаленного управления демоном (в том числе и встроенный веб-интерфейс!);
  • “rpc-authentication-required”: false и “rpc-password” + “rpc-username” – нужна ли авторизация для использования удаленного управления и логин-пароль если нужна;
  • “rpc-port”: 9071 – порт, на котором доступен интерфейс удаленного управления;
  • “rpc-url”: “/transmission/” – путь к интерфейсу (тогда веб-интерфейс будет расположен по адресу ip_роутера:9071/transmission/)
  • “rpc-whitelist-enabled”: true – включение доступа к удаленному управлению только для ip из указанного ниже списка;
  • “rpc-whitelist”: “192.168.0.1*” – список ip-адресов, с которых будет возможен доступ к удаленному управлению демоном, можно указать маску;
  • “blocklist-enabled”: true – использовать ли черные списки “плохих” пиров (например различные копираст-конторы и т.п.);
  • “blocklist-url”: “http://update.transmissionbt.com/level1” – адрес для загрузки черных списков.

Ограничения скоростей раздачи-загрузки, планировщик ограничений и условия для прекращения сидирования проще настраивать через веб-интерфейс. В общем-то и в файле настроек назначения почти всех опций понятны из их названий, а если что-то осталось неясным – можно уточнить в веб-документации к transmission.

Установленный на роутер торрент-клиент transmission
Web-интерфейс торрент-клиента Transmission

4 мысли о “Торрент-клиент transmission – установка на DIR-620 под управлением dd-wrt”

  1. Судя из параметра script-torrent-done-filename и его описания, как я понимаю, можно каким то образом на автомате делать переименование закачаных файлов из Ya_tut_idu_i_kury_v286.avi в Я тут иду и курю.avi ?

    1. Можно. Достаточно сделать скрипт/программу, которые будут этим заниматься, а путь к ним указать как раз в опции script-torrent-done-filename.

      1. А вы мы могли бы это как то обсудить? Вы могли бы записать такой скрипт ?

        1. Обсудить могу, а делать нет желания. Можно сделать шелл-скрипт с использованием awk/tr и mv (скорее всего будет достаточно awk), можно то же самое реализовать на perl (если есть желание его на роутер ставить).
          Общая идея мне видится такой: получить часть имени файла до расширения, затем преобразовать её согласно указанных правил, дальше склеить с расширением и переименовать файл. Как потом указать transmission, что нужно раздавать переименованный файл – не знаю.
          В целом, на мой взгляд, подобные действия довольно бессмысленны.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *