Pull to refresh

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

Reading time 4 min
Views 75K


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
Tags:
Hubs:
+51
Comments 44
Comments Comments 44

Articles