Установка rTorrent + ruTorrent из репозитория Entware
Установка rTorrent + ruTorrent из репозитория Entware (новая версия)
1. В репозиторий включен скрипт для автоматизации установки торрент клиента rtorrent с web-интерфейсом rutorrent.
Вы можете посмотреть его в действии здесь. Для использования скрипта наберите:
Code:
opkg install rtorrent-easy-install
Подразумевается, что в вашей системе ни lighttpd, ни rtorrent до момента старта скрипта не установлены.
2. Для активной раздачи с торрент-клиента, а также для того, чтобы можно было управлять закачками из интернета,
необходимо открыть на роутере соответствующие порты. На энтузиасткой прошивке это можно сделать так:
Code:
$ mkdir -p /tmp/local/sbin
$ echo "#!/bin/sh" > /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p tcp --dport 51411 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p udp --dport 51411:51412 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p tcp --dport 81 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ chmod +x /tmp/local/sbin/post-firewall
$ flashfs save && flashfs commit && flashfs enable
$ reboot
Управлять работой торрент клиента можно набрав в браузере <ip-адрес роутера>:<port>/rutorrent
Установка rTorrent + ruTorrent из репозитория Entware
Установка rTorrent + ruTorrent из репозитория Entware (старая версия)
Благодаря AndreyUA в новый репозиторий добавлен web-интерфейс для rTorrent и установка торрент клиента приобрела завершённый вид.
Ниже описаны минимальные телодвижения для того, чтобы заставить работать rTorrent с web-интерфейсом. Необходимо:
1. Установить пакеты репозитория Entware
Code:
$ opkg install rutorrent screen php5-cgi lighttpd-mod-fastcgi lighttpd-mod-scgi lighttpd-mod-auth
2. Сконфигурировать rTorrent
Создать папки watchdir и session. При попадании *.torrent-файла в первую папку он будет автоматически
добавлен в список заданий, вторая папка содержит текущее состояние скачек:
Code:
$ mkdir -p /opt/etc/rtorrent/watchdir
$ mkdir -p /opt/etc/rtorrent/session
Создать конфигурационный файл rtorrent.conf в папке /opt/etc/rtorrent со следующим содержимым:
Code:
max_uploads = 8
download_rate = 2048
upload_rate = 2048
directory = /tmp/harddisk/torrent
session = /opt/etc/rtorrent/session
schedule = watch_directory,5,5,load_start=/opt/etc/rtorrent/watchdir/*.torrent
schedule = untied_directory,5,5,stop_untied=
schedule = low_diskspace,5,60,close_low_diskspace=100M
bind = 0.0.0.0
port_range = 51411-51411
check_hash = yes
use_udp_trackers = yes
encryption = allow_incoming,enable_retry,prefer_plaintext
dht = auto
dht_port = 51412
peer_exchange = yes
scgi_local = /opt/var/rpc.socket
encoding_list = UTF-8
max_uploads_global = 32
max_downloads_global = 64
Поправьте выделенным красным путь, в нём должна быть указана папка на диске, в которую будут скачиватся файлы.
Создать файл для автоматического старта rtorrent - /opt/etc/init.d/S85rtorrent со следующим содержимым:
Code:
#!/bin/sh
ENABLED=yes
PROCS=rtorrent
ARGS="-n -o import=/opt/etc/rtorrent/rtorrent.conf"
PREARGS="screen -dmS rtorrent"
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
if [ -z "`pidof $PROCS`" ]; then
rm -f /opt/var/rpc.socket
fi
. /opt/etc/init.d/rc.func
и не забыть сделать его исполняемым:
Code:
$ chmod +x /opt/etc/init.d/S85rtorrent
3. Сконфигурировать web-сервер
В конец файла /opt/etc/lighttpd/lighttpd.conf добавьте строчки:
Code:
server.modules += ( "mod_scgi" )
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"socket" => "/opt/var/rpc.socket",
"check-local" => "disable"
)
)
)
server.modules += ( "mod_fastcgi" )
fastcgi.server = (
".php" =>
( "localhost" =>
( "socket" => "/tmp/php-fcgi.sock",
"bin-path" => "/opt/bin/php-fcgi",
"max-procs" => 1,
"bin-environment" =>
( "PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "1000"
)
)
)
)
server.modules += ( "mod_auth" )
auth.backend = "plain"
auth.backend.plain.userfile = "/opt/etc/lighttpd/passwd"
auth.require = (
"/rutorrent/" =>
( "method" => "basic",
"realm" => "restricted area",
"require" => "valid-user"
)
)
и создать файл cat /opt/etc/lighttpd/passwd с перечнем пар пользователь-пароль для ограничения доступа к ruTorrent. Пример файла:
4. В принципе всё, но ещё необходимо позаботиться о двух моментах:
а) если у вас, как у большинства форумчан, web-интерфейс роутера «висит» на стандартном 80-ом порту, то для работы
web-сервера lighttpd необходимо выбрать другой порт, изменив строчку в /opt/etc/lighttpd/lighttpd.conf:
б) для активной раздачи с торрент-клиента, а также для того, чтобы можно было управлять закачками из интернета,
необходимо открыть на роутере соответствующие порты:
Code:
$ mkdir -p /tmp/local/sbin
$ echo "#!/bin/sh" > /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p tcp --dport 51411 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p udp --dport 51411:51412 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ echo "/usr/sbin/iptables -I INPUT -p tcp --dport 81 -j ACCEPT" >> /usr/local/sbin/post-firewall
$ chmod +x /tmp/local/sbin/post-firewall
$ flashfs save && flashfs commit && flashfs enable
$ reboot
Управлять работой торрент клиента можно набрав в браузере <ip-адрес роутера>:81/rutorrent
Из серии: Чего нет ни в Optware, ни в OpenWRT
В марте обновился rtorrent/libtorrent до версий 0.9.1/0.13.1. Jari Sundell любит своё детище, списки изменений с предыдущей версии, имеющейся в репозитории, занимают по пять страниц.
Порадовало то, что теперь rtorrent теперь сам на лету регулирует скорость перехеширования! Больше rtorrent "не уходит в себя" до окончания этой операции и спокойно продолжает параллельную работу по скачиванию файлов, RPC-общению с web-мордой rutorrent и пр. Скорость перехеширования упала до ~4Мб/сек, но потребление CPU по top при этом не превышает 40%.
rtorrent и lighttpd на разных машинах
Всем привет!
Имеется asus wl500gpv2 с прошивкой 1.9.2.7-d-r2381. Так как я не смог настроить так, что бы в момент пика работы рторрента, при обращении к ruttorent роутер не загибался, я решил вынести рторрент на свой нетбук, а морду оставить на роутере. Нетбук монтирует по нфс с роутера нужные папки. На самом роутере пробросил порты, как времянка:
ssh -N -L 5000:localhost:5000 user@netbook Так как схема, со сменой адреса в lighttpd не прокатила.
Но при такой схеме ругается на отсутствие php. В PATH все прописано, пользователю запускающем вебсервер так же. В лога есть:
Code:
[04.04.12 19:17:46] <?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>execute</methodName><params>
<param><value><string>sh</string></value></param>
<param><value><string>-c</string></value></param>
<param><value><string>'/opt/share/www/rutorrent/php/test.sh' php '/opt/share/www/rutorrent/share/users/maks/settings/1754179042' '/opt/bin/php'</string></value></param>
</params></methodCall>
[04.04.12 19:17:46] Status: 200 OK
Content-Type: text/xml
Content-Length: 296
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<fault>
<value><struct>
<member><name>faultCode</name>
<value><i4>-503</i4></value></member>
<member><name>faultString</name>
<value><string>Bad return code.</string></value></member>
</struct></value>
</fault>
</methodResponse>
Где копать?
Может для кучи поделитесь, как часто у Вас роутер встает раком из-за нагрузки? Как избежать? И можно ли рутторенту указать другой адрес машины(не локалхост), что бы не пробрасовать порт или не перенаправлять запросы?
Спасибо!
Просто, до этого все работало.
Есть еще такой конфиг в чттп сервере:
Code:
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
( "localhost" =>
( "socket" => "/tmp/php-fcgi.sock",
"bin-path" => "/opt/bin/php-fcgi",
"max-procs" => 1,
"bin-environment" =>
( "PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "1000" )
)
)
)
~
~