Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Загрузка торрентов из веб-интерфейса LuCI OpenWRT

Оригинал: OpenWrt torrent download box with LuCI web interface
Автор: Arnab Satapathi
Дата публикации: 24 июля 2016 г.
Перевод: А.Панин
Дата перевода: 25 мая 2017 г.

Что вы думаете по поводу использования вашего маршрутизатора, работающего под управлением OpenWRT, для загрузки торрентов? Лично мне кажется, что использование для этой цели маршрутизатора вместо смартфона или ноутбука является отличной идеей.

Существует множество торрент-клиентов, совместимых с OpenWRT:

  1. ctorrent - очень легковесный и быстрый торрент-клиент.
  2. rtorrent - многофункциональный и высокопроизводительный торрент-клиент с поддержкой веб-интерфейса.
  3. Transmission - высокопроизводительный торрент-клиент с поддержкой интерфейса командной строки, веб-интерфейса и интерфейса удаленного вызова процедур.

В данной статье мы будем рассматривать методику использования торрент-клиента rtorrent и плагина веб-интерфейса LuCI luci-app-rtorrent для организации простого механизма загрузки торрентов из веб-интерфейса маршрутизатора. Торрент-клиент rtorrent полностью совместим с OpenWRT, может настраиваться с помощью файла конфигурации, но его текстовый интерфейс на основе библиотеки ncurses является не самым удобным.

На мой взгляд, наиболее функциональным и удобным торрент-клиентом для OpenWRT является Transmission, об установке и настройке которого мы поговорим в следующей статье.

Торрент-клиент ctorrent отлично подходит для загрузки файлов небольшого объема, он поддерживает ограниченное количество параметров конфигурации, в которых просто невозможно запутаться, и является поистине легковесным.

Установка пакетов rtorrent и luci-app-rtorrent

Ваш маршрутизатор должен быть оснащен портом USB, ведь вам в любом случае нужно будет где-то хранить загруженные файлы, кроме того, в его корневой файловой системе должно быть доступно около 1 МБ свободного пространства для установки всех необходимых пакетов, поэтому в первую очередь вам придется очистить пространство в корневой файловой системе маршрутизатора или перенести его корневую файловую систему на внешний USB-накопитель.

1. Для начала войдите в систему маршрутизатора по протоколу SSH и убедитесь в том, что маршрутизатор соединен с Интерент.

ssh root@192.168.1.1
ping -c 4 google.com

2. Теперь обновите список содержимого репозитория пакетов программного обеспечения OpenWRT.

opkg update

После этого ничто не будет мешать установке необходимых пакетов с именами rtorrent, wget и screen.

opkg install rtorrent-rpc wget screen

3. Загрузите новейшую версию файла пакета с плагином LuCI под названием luci-app-rtorrent со страницы проекта на ресурсе GitHub; на момент написания статьи это версия 0.1.3.

4. Теперь установите плагин luci-app-rtorrent с помощью утилиты opkg.

opkg install /tmp/luci-app-rtorrent_0.1.3_all.ipk

opkg автоматически разрешит все зависимости, то есть, загрузит все необходимые пакеты из репозитория и установит их.

Плагин luci-app-rtorrent разработан с использованием языка программирования Lua, поэтому является платформонезависимым, то есть работает на всех устройствах, совместимых с OpenWRT; официальная страница проекта доступна по данной ссылке.

Настройка rtorrent

Давайте немного модифицируем файл конфигурации rtorrent, который обычно располагается в домашней директории текущего пользователя; для пользователя root это директория /root.

Интересующий нас файл конфигурации носит имя .rtorrent.rc и может редактироваться с помощью текстового редактора vi или nano; я использую следующую конфигурацию торрент-клиента:

encoding_list = UTF-8
system.umask.set = 022
port_range = 23877-23877
port_random = no
check_hash = no
trackers.enable = 1
dht = auto
dht_port = 6881
 
scgi_port = 127.0.0.1:5000
encryption = allow_incoming, try_outgoing, enable_retry
 
directory = /mnt/sda2/downloads/
session = /mnt/sda2/rtorrent/session/
 
schedule = rss_downloader,300,300,"execute=/usr/lib/lua/rss_downloader.lua"

В моем случае загруженные файлы сохраняются в директории /mnt/sda2/downloads, а загружаемые - в директории /mnt/sda2/rtorrent/session, вам же следует в обязательном порядке адаптировать значения соответствующих переменных к своей системе.

Активация механизма запуска rtorrent в процессе загрузки системы

Для запуска rtorrent в фоновом режиме в процессе каждой загрузки системы следует создать сценарий автоматического запуска с именем /etc/init.d/rtorrent, после чего вставить в него следующий код с помощью текстового редактора vi или nano:

#!/bin/sh /etc/rc.common
 
START=99
STOP=99
 
start () {
screen -dmS rtorrent rtorrent
}
 
stop () {
killall -9 rtorrent
}

Теперь остается лишь активировать и запустить службу rtorrent.

chmod +x /etc/init.d/rtorrent
 
/etc/init.d/rtorrent enable
 
/etc/init.d/rtorrent start

Тестирование торрент-клиента

Откройте ваш любимый веб-браузер и введите в адресную строку IP-адрес маршрутизатора, обычно это 192.168.1.1, после чего войдите в веб-интерфейс маршрутизатора, введя пароль пользователя root. Вы должны заметить новый раздел Torrent на панели меню.

Загрузите torrent-файл или вставьте magnet-ссылку для загрузки торрента. На этом шаге вы также можете изменить директорию для загрузки файла.

Оптимизация скорости загрузки торрентов

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

Для создания дополнительного пространства подкачки следует создать файл подкачки размером вдвое больше объема оперативной памяти; в моем маршрутизаторе установлено 32 МБ оперативной памяти, поэтому я создал файл размером в 64 МБ.

dd if=/dev/zero of=/swap_file bs=1M count=64

Далее нужно преобразовать созданный файл в файл подкачки.

mkswap /swap_file

И подключить его.

swapon /swap_file

В данном случае подразумевается, что вы используете корневую файловую систему на внешнем накопителе, в которой достаточно свободного пространства для создания файла подкачки. Файлы подкачки работают не хуже отдельных разделов подкачки.

Далее нужно добавить несколько описаний параметров ядра с новыми значениями, позволяющими оптимизировать скорость загрузки торрентов, в файл конфигурации /etc/sysctl.conf и выполнить команду sysctl -p:

vm.swappiness=95
vm.vfs_cache_pressure=200
vm.min_free_kbytes=4096
vm.overcommit_memory=2
vm.overcommit_ratio=60

И это все, что нужно для организации процесса загрузки торрентов на круглосуточно работающем, энергоэкономичном и дешевом маршрутизаторе. На первый взгляд статья может показаться не достаточно подробной для начинающих пользователей, но вы сможете без труда повторить все описанные действия в том случае, если хоть немого знакомы с интерфейсом командной строки системы.

Если вы хотите дать совет или задать вопрос, вы можете оставить комментарий, на который я с удовольствием отвечу. Также не забудьте поделиться ссылкой на статью с друзьями!