Tag: rtorrent

How-to, linux, жизнь @ 05 Апрель 2009, “3 Comments”
Вчера/сегодня настраивал человеку сервер, для wtorrent+rtorrent. Наткнулся на несколько проблем.
Симптоматика примерно следующая:
С thepiratebay.org и других открытых трекеров скачивает свежий rtorrent без проблем, а на всяких Demonoid.com, tfile.ru, torrents.ru выдаёт "Timed Out".
Такое наблюдается на старых системах, с не очень свежим curl(За решение спасибо клиенту, что он откопал).
Собственно этот пост посвящён особенностям связки wtorrent+rtorrent на старых системах.
Итак, на текущий момент собирать всё из svn попросту необходимо(это актуально даже на системах типа Ubuntu), поскольку свежий wtorrent работает нормально только со свежим же rtorrent.

Итак, нам понадобятся свежие curl, c-ares(для curl), xmlrpc-c, ну и конечно rtorrent и libtorrent.
Рекомендую сделать отдельную папку compile(например) и собирать всё в ней.
Сборку начнём с c-ares, поскольку его использует curl, а тот в свою очередь используется xmlrpc:
mkdir compile && cd compile
http://c-ares.haxx.se/c-ares-1.6.0.tar.gz
tar zxvf c-ares-1.6.0.tar.gz
cd c-ares*tar.gz
./configure --prefix=/usr
make -j5 //j5 на двухядерную машину
sudo make install

Затем соберём curl:
cd ../
wget http://curl.haxx.se/download/curl-7.19.4.tar.bz2
tar xvfj curl*tar.bz2
cd curl*
./configure --enable-ares --prefix=/usr
make -j5
sudo make install

Ну и xmlrpc, чтобы можно было работать совместно с wtorrent:
cd ../
svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c/
./configure --prefix=/usr
make -j5
sudo make install

Теперь осталось только что и собрать rtorrent и libtorrent:
cd ../
svn co svn://rakshasa.no/libtorrent/trunk torrent
cd torrent/libtorrent
./autogen.sh
./configure --prefix=/usr
make -j5
sudo make install
cd ../rtorrent
./autogen.sh
./configure --prefix=/usr --with-xmlrpc-c
make -j5
sudo make install

После этого вполне можно установить wtorrent по этой инструкции.
Кстати, хочу подсказать если у вас при установке никак не хочет соединяться wtorrent с rtorrent'ом, имеет смысл попробовать в настройках поменять порт на 80(чего то они в последних версиях wtorrent'а черезчур намутили). Также имеет смысл в настройках apache поставить авторизацию к директории /RPC2, а то каждый кто захочет сможет вашей качалкой попользоваться :)
How-to, linux @ 22 Январь 2009, “61 Comments”
В общем по многочисленным просьбам трудящихся, исправленная и переработанная версия how-to установки rtorrent+wtorrent(rtGui и прочих). Установка будет происходить на примере wtorrent, однако Вы без проблем сможете устаноть любой другой понравившийся веб интерфейс.
Из необходимых оговорок: эта связка ставилась на Debian 5 Lenny, вот буквально пару часов назад.
В ходе этого хауту я буду давать необходимые и достаточные пояснения по описанию того, что мы там будем делать. В конце я буду рад замеченным Вами ошибкам, дополнениям.
Итак, установка будет происходить как и в прошлый раз на вебсервер Apache(в testing это 2.2.9) и php5(5.2.6)
Установка будет происходить из репозиториев, благо это достаточно быстрый и удобный способ. Особой производительности полученного вебсервера нам не требуется. Под катом собственно сама установка.
Далее...
linux @ 11 Август 2008, “37 Comments”
В предыдущих статья я рассматривал, как увеличивать рейтинг на торрент трекерах, с помощь отсылки GET запросов получаемых с помощью Wireshark и tcpdump, в этом посте я хочу рассказать, как можно модифицировать код rtorrent таким образом, чтобы он отсылал другие показатели на сервер:
- количество скачанного
- количество отданного
- сколько осталось скачивать
- представлятся другим торрент клиентом(если вдруг rtorrent неразрешен на трекере)
Также мы рассмотрим различные способы улучшения работы rtorrent. В общем, на мой взгляд это одна из наиболее полезных статей в серии.

Итак, приступим:
Сперва наперво нам необходимо скачать исходники rtorrent и libtorrent:
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.2.tar.gz
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.2.tar.gz

Далее разархивируем их(можно взять последнюю development версию из svn, как это сделать - описано в этой статье):
tar zxvf rtorrent-0.8.2.tar.gz
tar zxvf libtorrent-0.12.2.tar.gz

Итак, приступим к модификации кода.

Пункт первый - увеличиваем отдачу:
vim libtorrent-0.12.2/src/tracker/tracker_http.cc
Находим строчку: s << "&uploaded=" << up
Изменяем значение up, на (up*2), это увеличит отдачу в два раза, строка итоговая будет выглядеть так: s << "&uploaded=" << (up*2)

Пункт второй - уменьшаем количество скачиваемого:
Ищем строку: << "&downloaded=" << down
Меняем соответственно down на (down*0.5).

Пункт третий - уменьшаем количество оставшегося:
Ищем строку: << "&left=" << left;
Заменяем left на (left*0.5), нужно менять на то же значение, что и down, поскольку некоторые трекеры смотрят на параметры отдаваемых торрент-клиентом(лучше вообще эти параметры не менять).

Пункт четвёртый - надеваем чужую маску:
Не секрет, что помимо указанных выше данных торрент-клиент сообщает трекеру своё название, и код этого названия с потолка не берётся, давайте ознакомимся со списком примерных User Agent'ов:
peer_id (PEER_NAME) User-Agent String: USER_AGENT:
-AZ3022- Azureus 3.0.2.2 Azureus/3022
-BC0091- BitComet 0.0.9.1 BitComet/0091
-BF1355- BitFlu 1.3.5.5 BitFlu/1355
-UT1610- uTorrent 1.6.1.0 uTorrent/1610

Расшифровывается очень просто -UAVERS-, где UA сокращённый User Agent, а VERS - V.E.R.S - версия torrent-клиента без точек.
На многих трекерах запрещены User Agent, использующие возможность скачивания без возможности отдачи(например на torrents.ru таким образом закрыта Opera), вот список UA, которые, с высокой долей вероятности ни на одном трекере закрыты не будут:
'AG' - Ares
'A~' - Ares
'AR' - Arctic
'AV' - Avicora
'AX' - BitPump
'AZ' - Azureus
'BB' - BitBuddy
'BC' - BitComet
'BF' - Bitflu
'BG' - BTG (uses Rasterbar libtorrent)
'BR' - BitRocket
'BS' - BTSlave
'BX' - ~Bittorrent X
'CD' - Enhanced CTorrent
'CT' - CTorrent
'DE' - DelugeTorrent
'DP' - Propagate Data Client
'EB' - EBit
'ES' - electric sheep
'FT' - FoxTorrent
'GS' - GSTorrent
'HL' - Halite
'HN' - Hydranode
'KT' - KTorrent
'LH' - LH-ABC
'LP' - Lphant
'LT' - libtorrent
'lt' - libTorrent (rtorrent)
'LW' - LimeWire
'MO' - MonoTorrent
'MP' - MooPolice
'MR' - Miro
'MT' - MoonlightTorrent
'PD' - Pando
'qB' - qBittorrent
'QD' - QQDownload
'QT' - Qt 4 Torrent example
'RT' - Retriever
'S~' - Shareaza alpha/beta
'SB' - ~Swiftbit
'SS' - SwarmScope
'ST' - SymTorrent
'st' - sharktorrent
'SZ' - Shareaza
'TN' - TorrentDotNET
'TR' - Transmission
'TS' - Torrentstorm
'TT' - TuoTu
'UL' - uLeecher!
'UT' - µTorrent
'WT' - BitLet
'WY' - FireTorrent
'XL' - Xunlei
'XT' - XanTorrent
'XX' - Xtorrent
'ZT' - ZipTorrent

Более полный список можно посмотреть на этой страничке.
Итак, чтобы сменить открываем файл:
vim libtorrent-0.12.2/configure
И меняем там
#define PEER_NAME "-lt0B01-"
Например на:
#define PEER_NAME "-UT1720-"
Также, чтобы не вычислили подмену заменяем в файле:
vim rtorrent-0.8.2/configure
#define USER_AGENT std::string(PACKAGE "/" VERSION "/") + torrent::version()
На:
#define USER_AGENT "uTorrent/1720"
В принципе это основные шпионские штучки, в общем - главное не попадитесь ;)

Теперь займёмся модификацией исходного кода в сторону улучшения работы rtorrent.
Открываем:
vim libtorrent-0.12.2/src/protocol/peer_connection_leech.cc
И заменяем:
if (cachedTime - m_timeLastRead > rak::timer::from_seconds(240))
if (cachedTime - m_timeLastRead > rak::timer::from_seconds(20))

Это позволяет откидывать пиров, которые не участвуют никак в раздаче намного быстрее.

В принципе всё, что я хотел рассказать о работе с rtorrent, завтра-послезавтра я коротко расскажу как можно изменить отдачу в Deluge.




linux @ 26 Июль 2008, Обсудить
СТАТЬЯ ПОТЕРЯЛА СВОЮ АКТУАЛЬНОСТЬ, СМОТРИТЕ ЗДЕСЬ

В одной из предыдущих статей мы рассматривали как можно установить web-интерфейс wTorrent.
Сегодня мы будем рассматривать установку аналогичного и более минималистичного интерфейса для rtorrent - rtGui.
Сперва наперво, чтобы исходная конструкция работала, нужно добавить в систему несколько пакетов:
sudo apt-get install php5 php5-xmlrpc libapache2-mod-scgi libxmlrpc-c3-dev libxmlrpc-c3
Совместно по зависимостям потянется Apache.
После этого нужно будет добавить в конфиг апача пару строк. Открываем дефолтный конфиг:
sudo vi /etc/apache2/sites-enabled/000-default
Вписываем перед две строчки:
LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000

Рестартуем Apache(на этом я несколько раз накалывался):
sudo apache2ctl restart
Добавляем, если ещё не добавили в .rtorrent.rc:
scgi_port = 127.0.0.1:5000
Переходим в директорию веб сервера(у меня это ~/www/ по умолчанию в Ubuntu и Debian это /var/www):
cd /var/www/
Скачиваем последнюю версию rtGui и распаковываем:
wget http://rtgui.googlecode.com/files/rtgui-0.2.3.tgz && tar zxvf rtgui-0.2.3.tgz
Стартуем rtorrent и переходим по ссылке: http://localhost/rtgui/
И наблюдаем ~ такую картину:
[caption id="attachment_178" align="aligncenter" width="300" caption="rtgui - web-интерфейс для rtorrent"]rtgui - web-интерфейс для rtorrent[/caption]
linux @ 24 Июль 2008, “7 Comments”
СТАТЬЯ ПОТЕРЯЛА СВОЮ АКТУАЛЬНОСТЬ, СМОТРИТЕ ЗДЕСЬ

Как и обещал, в этом посте я расскажу, как можно настроить rtorrent на использование с web-интерфейсом wTorrent.
wTorrent это Ajax-based веб интерфейс, обладающий гибкими настройками и легко изменяемым внешним видом.
Для начала необходимо настроить Web-сервер, я лично выбираю LAMP, хотя в многочисленных мануалах, которые я читал используют lighthttpd, но так как я на рабочей машине я помимо всяких веб-интерфейсов я тестирую различные движки, например Typo3 и Movable Type.
Итак, для того чтобы установить веб-сервер + всё необходимое для работы нужно выполнить команду:
sudo aptitude install libapache2-mod-php5 apache2-utils apache2.2-common libapache2-mod-scgi php5-sqlite php5-sqlite3 php5-mysql php5-common php5-cli php5 subversion curl libxmlrpc-c3 screen
Так мы установим Apache 2, PHP5, MySQL и SQLite, svn.
Всё это в сумме выкачает ~40-50 мегабайт из сети.
Далее сконфигурируем Apache, для того, чтобы он работал не из /var/www, как по умолчанию идёт при инсталляции, а в ~/www/. Это сделано для того, чтобы не съедать место, которое отведено под раздел /var под ваши манипуляции с файлами.
Создадим директорию ~/www
mkdir ~/www
Далее в /etc/apache2/sites-available/default прописываем:

ServerAdmin webmaster@localhost
DocumentRoot /home/user/www/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /home/user/www/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog /home/user/www/error.log
LogLevel warn
CustomLog /home/user/access.log combined
ServerSignature On
Alias /doc/ "/home/user/www/doc/"
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128

Это позволит обращаться к папке ~/www через строку браузера: http://localhost/
Про установку rtorrent я уже писал. Поэтому на этом останавливаться не будем.
Перейдем в ~/www и скачаем последнюю версию wTorrent:
svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
После этого потребуется небольшое шаманство с самим rtorrent, нужно добавить строчку в ~/.rtorrent.rc:
scgi_port = localhost:5000
После этого запускаем сам rtorrent:
screen -dmS rtorrent rtorrent
Переходим по ссылке:
http://localhost/wtorrent/install2.php
Настраиваем там всё как надо, после этого прописываем свои логин и пароль:
http://localhost/wtorrent/install.php
Выполняем:
rm ~/www/wtorrent/install.php
Заходим, логинимся, радуемся.
← + Ctrl + →