![](https://habrastorage.org/storage/6b26d722/644a409e/161069e9/fd4c82ad.jpg)
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 и проставляем чекбоксы как на скриншоте.
![](https://habrastorage.org/storage/20613d88/f771698f/d149cdf0/477d0029.png)
Установка 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
![](https://habrastorage.org/storage/64a34f6c/3c2750da/509f0bb2/919a690e.png)
Корректное завершение работы
В разделе Administration -> Scripts в блок Shutdown вносим следующий скрипт для корректного завершения работы (завершить сервис transmission и отмонтировать диск) в случае выключения роутера.
killall transmission-daemon
sleep 5 && unmount /dev/sda1
![](https://habrastorage.org/storage/1c192508/8e09cee4/12922767/fc6535fe.png)
Поднимаем шару
Чтобы весь скаченный контент был удобно доступным запускаем Samba. Делается это очень просто в разделе USB and NAS -> File Sharing. Тут нужно выставить Enable File Sharing на Yes и добавить папку, которую нужно сделать доступной.
![](https://habrastorage.org/storage/209aece4/c1ed6fa7/f31f991d/62368600.png)
Теперь папку можно примапить себе сетевым диском.
Доступ из вне. DynDNS
Очень хорошо иметь доступ к роутеру из внешней сети. Таким образом можно например с работы поставить что-либо на закачку и по приезду домой уже иметь то, что нужно. Большинство провайдеров не предоставляет статичного ip адреса или же хочет за эту услугу денег. Тут на помощь приходят DynDNS сервисы. Я остановил свой выбор на no-ip. Заходим на www.no-ip.com, регистрируемся и получаем адрес вида username.no-ip.org и пароль. Идем в админку роутера меню Basic – DDNS и настраиваем как на скриншоте.
![](https://habrastorage.org/storage/44138577/f4bd206e/fb9d4e0b/7f9a7d2f.png)
Доступ из вне к админке роутера
Идем в меню Administration – Admin Access, где ставим настройки как на скриншоте. Теперь по адресу username.no-ip.org:8080 можно попасть на роутер.
![](https://habrastorage.org/storage/a49fe784/87767f05/47ac4a56/278266ea.png)
Доступ из вне по SSH
Чтобы появилась возможность из интернета подключаться к роутеру через Putty включаем в том же меню (Administration – Admin Access) SSH Daemon со следующими настройками.
![](https://habrastorage.org/storage/1ad7f89c/ff938b1a/e45c9c55/5a41a10e.png)
Далее пробрасываем порты в меню Port Forwarding – Basic
![](https://habrastorage.org/storage/9b790a7a/fc773194/c3b8d661/92e54129.png)
Благодаря этому в случае необходимости коннектимся по SSH
![](https://habrastorage.org/storage/30b22afe/920d06ab/609424e6/f3dc72a7.png)
Доступ из вне к web интерфейсу Transmission
Через интерфейс роутера мне не удалось сделать проброс порта для торрент клиента. Решить данную проблему получилось командой в терминале:
iptables -I INPUT -p tcp --dport 9091 -j ACCEPT
Поскольку после перезагрузки роутера этот «проброс» исчезает, я засунул его в раздел «автозагрузки» меню Administration – Scripts блок WAN UP
![](https://habrastorage.org/storage/3cb27581/e42fd686/4c253026/765b016b.png)
После всех манипуляций при заходе на username.no-ip.org:9091 дожен быть веб интерфейс Transmission’a. Но в файле конфигурации settings.json расположенному в /mnt/Elements/data/torrents/.config/transmission-daemon/settings.json стоит настройка, которая не пускает «чужые» ip. Решение: или вносим свой айпи в rpc-whitelist или вообще отрубаем whitelist, ставя ему значение false. Я выбрал второй метод.
![](https://habrastorage.org/storage/be43cc25/8c6b668f/52e7440f/a6efbbdc.png)
Profit!
Вновь пробуем зайти на username.no-ip.org:9091 – вуаля! Работает. С этого момента можно управлять всей «системой» из любого места, где есть подключение к интернету.
![](https://habrastorage.org/storage/02ea96d2/a1d8f79c/f5ce473b/ce0b0043.png)
Полезности & Thanks!
1) Для проверки открытых портов на роутере удобно пользоваться сервисом www.yougetsignal.com/tools/open-ports
2) По SSH можно подключаться с помощью FAR с установленным плагином WinSCP
3) Чтобы не лазить в Transmission через браузер можно воспользоваться Transmission Remote GUI
4) Так же существует Transmission Remote под Android. Легко ищется на Android Market. Тестрировал с медленным GPRS соединением — работает. Правда функционал приложения не очень велик.
![](https://habrastorage.org/storage/5a741dfb/93f6876f/dc033728/2dd86a73.png)
5) Хочу поблагодарить пользователя с ником ArtemR с форума forum.netgear.ru, Владимира Кузнецова и Андрея Рогожкина за помощь в настройке.
6) Использованы материалы отсюда www.xtremecoders.org/forums/f76/guide-how-install-setup-transmission-tomato-56