Торрент-клиент 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



Category Рубрики: *NIX, Интернет | Tag Метки: , , | Comments 4 комментария »

4 комментария

  1. Mihail says:

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

    • dimio says:

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

      • Mihail says:

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

        • dimio says:

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

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