Пользователь
0,0
рейтинг
10 февраля 2011 в 18:40

Настройка торрент клиента Transmission на прошивке Tomato



Intro


Приветствую всех. Хочу поделиться с вами своим опытом настройки клиента Transmission на популярной open source прошивке для роутеров Tomato. Недавно на хабре публиковалась статья Netgear WNR3500L: Превращаем роутер в NAS, где за основу была взята прошивка DD-WRT. Но лично мне DD-WRT не очень понравилась, а функционал торрент качалки с NAS’ом был очень нужен. Поэтому предлагаю познакомиться с альтернативным методом.

Установка прошивки Tomato на роутер.


Не хочу особо подробно расписывать процесс установки прошивки и предполагаю, что вы умеете это делать. В общих чертах последовательность действий такова: с сайта www.dd-wrt.com качаем мини прошивку и ставим. Для моего NetGear WNR3500L это файл d-wrt.v24-14896_NEWD-2_K2.6_mini-WNR3500L.chk (к сожалению дефолтная прошивка роутера не может сразу открыть помидорный файл с расширением trx. Поэтому предварительно прибегаем к помощи DD-WRT) Следующий шаг – установка непосредственно Tomato. Качаем с tomatousb.org/download нужный дистрибутив (в моем случае это был tomato-K26USB-1.28.9054MIPSR2-beta-Ext.trx) и опять же устанавливаем. Обязательно не забудьте сделать роутеру reset. По умолчанию на админку по адресу 192.168.1.1 ставится пароль admin\admin.

Подготовка жесткого диска


Теперь нам необходимо отформатировать жесткий диск в файловую систему ext3 одной партицией. Я это сделал с помощью программы Acronis Disk Director. При форматировании нужно будет указать HDD label – я внес имя Elements в честь моего жесткого диска WD Elements Portable. Имя харда понадобится нам в дальнейшем и поможет не запутаться.

Подключение жесткого диска


Перед подключением харда в usb порт роутера заходим в админку и следуем в раздел USB and NAS -> USB Support и проставляем чекбоксы как на скриншоте.



Установка Transmission


С помощью Putty подключаемся по телнету к роутеру. По умолчанию для этого открыт 23 порт по адресу 192.168.1.1. Имя пользователя root, пароль – ваш пароль на админку. Далее самое интересное.

Создаем необходимые директории:

mkdir /mnt/Elements #где Elements is USB HDD label (ext3)
mkdir /mnt/Elements/opt
mkdir -p /mnt/Elements/data/torrents
mkdir /mnt/Elements/opt
mount -o bind /mnt/Elements/opt /opt
mount -o bind /mnt/Elements/ /mnt

Качаем Optware:

wget www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O /tmp/optware-install.sh
sh /tmp/optware-install.sh

Ставим Transmission и конфиг:

/opt/bin/ipkg-opt -verbose_wget install transmission
/opt/bin/transmission-daemon -g /mnt/Elements/data/torrents/.config/transmission-daemon
killall transmission-daemon
wget www.3iii.dk/linux/optware/settings.json -O /mnt/Elements/data/torrents/.config/transmission-daemon/settings.json
/opt/bin/transmission-daemon -g /mnt/Elements/data/torrents/.config/transmission-daemon

Теперь Transmission работает и можно зайти в его веб интерфейс по адресу http://192.168.1.1:9091

Закрепляем результат


В текущий момент мы уже имеем работающий клиент. Но при перезагрузке роутера все наше хозяйство само не заведется. Поэтому опять идем в раздел USB and NAS -> USB SUPPORT и в блок After Mounting пишем следущий скрипт. После этой операции Transmission поднимется сам после загрузки роутера.

mount /mnt/Elements/opt /opt
/opt/bin/transmission-daemon -g /mnt/Elements/data/torrents/.config/transmission-daemon



Корректное завершение работы


В разделе Administration -> Scripts в блок Shutdown вносим следующий скрипт для корректного завершения работы (завершить сервис transmission и отмонтировать диск) в случае выключения роутера.

killall transmission-daemon
sleep 5 && unmount /dev/sda1



Поднимаем шару


Чтобы весь скаченный контент был удобно доступным запускаем Samba. Делается это очень просто в разделе USB and NAS -> File Sharing. Тут нужно выставить Enable File Sharing на Yes и добавить папку, которую нужно сделать доступной.



Теперь папку можно примапить себе сетевым диском.

Доступ из вне. DynDNS


Очень хорошо иметь доступ к роутеру из внешней сети. Таким образом можно например с работы поставить что-либо на закачку и по приезду домой уже иметь то, что нужно. Большинство провайдеров не предоставляет статичного ip адреса или же хочет за эту услугу денег. Тут на помощь приходят DynDNS сервисы. Я остановил свой выбор на no-ip. Заходим на www.no-ip.com, регистрируемся и получаем адрес вида username.no-ip.org и пароль. Идем в админку роутера меню Basic – DDNS и настраиваем как на скриншоте.



Доступ из вне к админке роутера


Идем в меню Administration – Admin Access, где ставим настройки как на скриншоте. Теперь по адресу username.no-ip.org:8080 можно попасть на роутер.



Доступ из вне по SSH


Чтобы появилась возможность из интернета подключаться к роутеру через Putty включаем в том же меню (Administration – Admin Access) SSH Daemon со следующими настройками.



Далее пробрасываем порты в меню Port Forwarding – Basic



Благодаря этому в случае необходимости коннектимся по SSH



Доступ из вне к web интерфейсу Transmission


Через интерфейс роутера мне не удалось сделать проброс порта для торрент клиента. Решить данную проблему получилось командой в терминале:
iptables -I INPUT -p tcp --dport 9091 -j ACCEPT
Поскольку после перезагрузки роутера этот «проброс» исчезает, я засунул его в раздел «автозагрузки» меню Administration – Scripts блок WAN UP



После всех манипуляций при заходе на username.no-ip.org:9091 дожен быть веб интерфейс Transmission’a. Но в файле конфигурации settings.json расположенному в /mnt/Elements/data/torrents/.config/transmission-daemon/settings.json стоит настройка, которая не пускает «чужые» ip. Решение: или вносим свой айпи в rpc-whitelist или вообще отрубаем whitelist, ставя ему значение false. Я выбрал второй метод.



Profit!


Вновь пробуем зайти на username.no-ip.org:9091 – вуаля! Работает. С этого момента можно управлять всей «системой» из любого места, где есть подключение к интернету.



Полезности & Thanks!


1) Для проверки открытых портов на роутере удобно пользоваться сервисом www.yougetsignal.com/tools/open-ports
2) По SSH можно подключаться с помощью FAR с установленным плагином WinSCP
3) Чтобы не лазить в Transmission через браузер можно воспользоваться Transmission Remote GUI
4) Так же существует Transmission Remote под Android. Легко ищется на Android Market. Тестрировал с медленным GPRS соединением — работает. Правда функционал приложения не очень велик.



5) Хочу поблагодарить пользователя с ником ArtemR с форума forum.netgear.ru, Владимира Кузнецова и Андрея Рогожкина за помощь в настройке.
6) Использованы материалы отсюда www.xtremecoders.org/forums/f76/guide-how-install-setup-transmission-tomato-56
@v0rtex
карма
12,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (44)

  • –11
    Спасибо за торт
    • +7
      Один сказал, все как дураки повторяют.
      • –4
        Ок, больше не буду, но статья все равно очень развернутая.
  • 0
    А можно ли настроить Transmission так, чтобы он качал и раздавал только в определенное время дня, а все остальное время простаивал абсолютно без сетевой активности?
    • 0
      cron?
      • 0
        Можно, конечно, если не найду встроенного функционала, буду так и делать. Просто, если что-то пойдет не так, рискую потратить деньги, так что без необходимости не хотелось бы реализовывать самому.
        • 0
          Transmission умеет так
          • 0
            Так умеют почти все клиенты, но, к сожалению, во всех них «0» значит неограниченную скорость, а не запрет сетевой активности.
            • 0
              transmission понимает float. Можно ему написать нечто вроде .00001
              • 0
                Спасибо, попробую
            • +1
              Ну, я вот только что проверил. Выставил по нулям и вуаля, и скачивание, и раздача прикратились. Так что видимо не «во всех».
            • 0
              Да. Тоже проверил, можно нули записать и всё прекратится. Про float — обманул вас. В новых версиях не понимает таких лимитов.
  • +4
    Вместо remote transmission пользуюсь Transdroid. Работает с кучей клиентов и умеет ещё кучу всего:)
    • 0
      Thanks за наводку. Действительно очень хороший клиент. Рвет remote transmission в клочья :)
  • +3
    А у меня прямо за монитором обои такие же.
  • 0
    спасибо)
    помню давно были материнки tomato… хорошие железяки были)
  • 0
    У меня DD-WRT на Dlink DIR320, хотел бы узнать, что именно не понравилось в DD-WRT? Чем может похвастаться томатная прошивка? Тоже использую transmission и ещё сетевой принтер. Единственная проблема, которая меня печалит: по Wi-Fi у меня предел скорости 8.8МБит/сек. Может кто-то знает как разогнать? :)
    • 0
      Юзал dd-wrt на dir-320, сейчас Tomato (не beta). Отличия — нормальный QoS (в dd-wrt он только в платной версии), большее максимальное количество коннектов одновременно (в какой-то сравнительной табличке в википедии было видно, что наибольшее среди всех), более стабильная работа (иногда роутер залипал, после установки Tomato это прекратилось), легковесная админка. Да вообще видно что меньше она его нагружает, хотя бы на свободную память посмотреть. Из минусов — там не так просто настроить VLANы (я так понял, только через консоль и nvram)
      • 0
        А что скажете о скорости по Wi-Fi?
        • 0
          У меня 15 мегабит канал, только с этой прошивкой оно вообще стабильно заработало) И да, вайфай немного шустрее, во всяком случае коннект с устройствами быстрее происходит. Скорость более 15 мбит по понятным причинам проверить не могу
          • +2
            Чёрт, снова руки чешутся перепрошить :) Эх…
            • 0
              Можно ещё и перепаять. Я лично сразу после покупки вставил ему 64 метра оперативы
    • 0
      У меня с ДД-ВРТ не срослось, отваливался вайфай на роутере. Поэтому искал «что-нибудь». Остановился на Томато. Субъективно помидор:
      1) Быстрее работает (не на много, но все же быстрее)
      2) Приятнее глазу
  • 0
    Так же существует Transmission Remote под Android. Легко ищется на Android Market. Тестрировал с медленным GPRS соединением — работает. Правда функционал приложения не очень велик.

    Transdroid — удаленное управление, поиск и загрузка торрентов на сервер, виджет и другие фичи.
    Еще есть Torrent-fu, раньше пользовался им, но перешел на TD.
  • 0
    У вас 192.168.1.1 — это роутер? Если да — непонятно, нафига пробрасывать порт 2222=>22. Настроил в Administration/Admin Access/SSH Daemon — и все дела. Не?
  • –1
    Я надеюсь, автор, как и все, кто планирует далее использовать торренты, уже сделали себе VPN через страну, где за пиратство не грозит до 6 лет свободы и куда вы никогда, скорее всего, не пойдете? Не думайте, что я нагнетаю, но лично сам отказался от торрентов. С милицией потом дело иметь не хочется из-за 1000 рублей, которые плавно могут перетекут во многие тысячи из-за потерянного времени
    • 0
      Тогда надо сразу делать шифрованный диск, чтобы нельзя было его прочитать без ввода пароля. Но это не удобно — мало ли перезагрузится — и ёк — не работает.
      • –1
        Я сделал, в двух копиях. И одна копия на удаленке черт знает где, так что все хорошо :)
      • 0
        Им будет плевать на ваш шифрованный диск
        • –1
          Почему-то я тоже этого опасаюсь
    • 0
      Тут знаете ли VPN не очень поможет, а помочь может паспорт гражданина такой «другой» страны…
      • –1
        С этим куда сложнее)
  • +2
    Все понятно, но очень интересует, что автор планирует делать со скачанными торрентами дальше? И очень интересуют замеры скорости передачи данных (USB HDD > LAN и USB HDD > Wi-Fi) на оборудовании автора и этой прошивке.
    Передача данных с USB HDD имеет очень низкую скорость, т.к. напрямую зависит от производительности процессора и объема оперативной памяти роутера.
    Например у меня на похожем оборудовании (NetGear WNDR3700 + USB HDD в коробке с раздельным питанием) скорость передачи HDD USB > Wi-Fi не превышает 2,5 мегабайта в секунду, а скорость HDD USB > LAN не более 6,5. В то время как скорость с LAN по Wi-Fi на ноут с 801n draft стабильно 12,5.
    Поэтому, например, практически нереально использовать медиаконтент в нормальном качестве (HD, FullHD) с USB HDD, приходиться постоянно его переливать на какие-нибудь другие носители, что занимает с такими скоростями очень много (IMHO) времени.
    Посему пришел к выводу, что нужен какой-нибудь гигабитный NAS c торрент клиентом в домашней сети, а роутер выполняет функции, для которых он изначально предназначен.
    Хотя реализация связки как у автора имеет право на жизнь и вполне, как сейчас модно говорить, бюджетная, но со своими недостатками.
    • +1
      у меня помидорки на WNDR3500L, скорость hdd-wifi тоже редко поднимается выше 2.5мбайт\сек, по проводу тоже скорости аналогичные вашим. Соответсвенно, те же грабли с просмотром HD контента. Немного стабильности прибавляет перезапуск самбы с nice -n -19.
      Вроде, скорости по фтп выше (т.к. CPU меньше нагружается на фтп протокол, нежели на smb), так что как вариант можно на конечных устройствах подмапить сетевой диск по фтп, а не по самбе.
      На своей коробке это решение еще не проверял, руки не дошли.
      • 0
        ах да, тестил скорость чтения винда копированием в /dev/null — выдало около 10мбайт\сек, так что выжать по вафле больше — реально, но придется отказаться от удобств самбы. Однако и transmission мне пришлось запустить с nice -n 20 дабы самба выигрывала процессорное время у него.
        без этого тюнинга запущенный трансмишн не давал по вафле больше мегабита.
        • 0
          винда=винта :)
          я такой поторописька
  • 0
    У меня тоже HDD USB > Wi-Fi не превышает 2,5 мегабайта в секунду.
    Что это такое вы представляете. Просто у меня нет потребности в FullHD т.к. считаю бессмысленно смотреть такое качество на 13 дюймовом мониторе ноутбука. А обычные DVD рипы играются совершенно нормально.
  • 0
    >unmount /dev/sda1
    такой команды нет, и диски в dev так не отображаются… следовательно, эту команду можно не писать.
    unmount=umount
    диски хранятся в
    /dev/discs
  • 0
    Спасибо, полезная статья. Написано хорошо им подробно, благодаря чему у меня удалось настроить transmission.
    Единственное но — фраза «mkdir /mnt/Elements #где Elements is USB HDD label (ext3)» сбивает с толку т.к. после перезагрузки роутера все настройки затрутся. Правильнее было бы сказать, что флешка замаунтится автоматически на эту папку.
    И еще одно уточнение, флешка должна быть отформатирована в ext2/3 иначе у приложений не получится создать symlink'и.
  • 0
    Автору спасибо. Все настроилось и прекрасно работает. Статья действительно хорошо и подробно написана.

    Только есть один момент. Я юзал telnet, там где нужно качать пакеты — перед «www»в команде нужно ставить "http://www"…
    У меня например команда:

    root@unknown:/tmp/home/root# wget www.3iii.dk/linux/optware/optware-install-ddwr
    t.sh -O /tmp/optware-install.sh


    Выдает ошибку:

    wget: not an http or ftp url: www.3iii.dk/linux/optware/optware-install-ddwrt.sh

    , если перед «www.3iii....» не поставить «http://»;

    Правильный вариант соответственно такой:

    root@unknown:/tmp/home/root# wget www.3iii.dk/linux/optware/optware-install-ddwr
    t.sh -O /tmp/optware-install.sh


    • 0
      Понял где косяк :) Форма отправки комментариев на хабре скрывает «http://», считая (правильно для всего кроме кода) лишним эту пристройку, действуя подобно браузерам. Скорей всего при написании статьи все верно было написано.

      Считаю это недочетом уже хабра, ведь если текст заключен в теги <.code></code.>, рубить «лишнее» не стоит, чем бы это не было.
  • 0
    а поддержка rss лент присутствует?
  • 0
    Автору спасибо за статью.

    Вы когда жесткий диск форматировали, Вы swop файл создавали?
  • 0
    Купил себе его пару дней назад, обновил родную прошивку до последней версии и захотел сделать как тут в статье и сразу на первом шаге, где нужно загрузить dd-wrt.v24-14311_NEWD-2_K2.6_mini-WNR3500L.chk выдает Не удалось выполнить обновление ПО. Проверьте файл, что может быть не так?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.