Tag: torrent

How-to, linux @ 28 Апрель 2009, “10 Comments”
В общем я тут когда хотел через piratebay скачать диск Космических Рейнджеров(его у меня сестра весь исцарапала), мне пришлось воспользоваться uTorrent-ом, поскольку мой любимый rtorrent во первых из коробки не умеет менять адрес трекера, во вторых как то не очень хорошо работает с dht, и в четвёртых плохо работает с ipv6.
В общем запустил, скачал, и как то он так мне понравился, что я решил попробовать его в серверных делах. Понятно что он будет жрать весьма немало ресурсов(разве что только процессорных, а памяти ест немногим больше rtorrent(!!!), хотя не знаю, как он ведёт себя при большом количестве раздач, если кто имеет возможность сравнивать - скажите сколько он жрет при 100 раздачах и больше)
В общем, поискал я по миру, может кто уже такое написал - ан нет, всё делают через vnc c xorg-ом и прочие нестандартно сексуально ориентированные вещи.
В общем для работы нам понадобится - установщик utorrent, ssh, какой нибудь текстовый редактор, vnc4server(чисто чтобы запустить utorrent, а то при выходе из ssh он падает), wine(куда ж без него) и несколько прямые руки ;)
Итак, сначала настраиваем локальную машину чтобы мы могли запускать таки гуёвые проги их консоли:
sudo vim /etc/ssh/ssh_config
Раскомментируем там:
ForwardX11 yes
ForwardX11Trusted yes

После этого логинимся:
ssh root@host
И добавляем репозиторий wine для debian:
#Сначала импортируем ключ репозитория
gpg --keyserver keyserver.ubuntu.com --recv-key 905C75258D4B24D2
gpg --export 905C75258D4B24D2 | apt-key add -
echo "deb http://www.lamaresh.net/apt lenny main" >> /etc/apt/sources.list
apt-get update
apt-get install wine

Теперь разрешим форвардинг иксов в демоне sshd:
vim /etc/ssh/sshd_config
Раскомментируем/добавим:
X11Forwarding yes
X11DisplayOffset 10

Добавим пользователя(вы же правда не будете сидеть под рутом?;):
adduser utorrent
и перезапускаем sshd
/etc/init.d/ssh restart
Разлогиниваемся и залогиниваемся под новым пользователем, указывая ключ -X, что позволяет нам запускать гуёвые программы:
ssh -X utorrent@host
Скчиваем последнюю на текущий момент версию utorrent(1.8.2):
wget http://download.utorrent.com/1.8.2/utorrent.exe
запускаем:
wine utorrent.exe
Это относительно длительный процесс, хотя по локалке оно всё, конечно, быстро открывается.
После того как оно откроется, запускается установка(я не буду на ней останавливаться, вы что никогда программы не ставили что ли? ;)
После установки запускаем utorrent:
http://img.librarian.spb.ru/200904042249398273657.png
Открываем вкладку Preferences-Webui и включаем вебинтерфейс:
http://img.librarian.spb.ru/200904042549536933969.png
Вводите логин и пароль, сохраняете и открываете вебинтерфейс по ссылке http://host:port/gui/
Открывается вебинтерфейс http://img.librarian.spb.ru/200904043046095133991.png
Теперь надо будет решить проблему с отключением от консоли, вам ведь нужно иногда спать ;)
Установим vnc сервер и запустим его в минимальной конфигурации
sudo aptitude install vnc4server
vncserver -geometry 640x480 -depth 8
Теперь на локальной машине устанавливаем что-ниубдь что может подключаться к vnc(например gvncviewer)
sudo aptitude install gvncviewer
И собственно подключаемся:
gvncviewer host:1
Должно открыться окно терминала, аналогичного ssh, там пишем wine /home/utorrent/utorrent.exe ждём пока оно запустится и закрываем его. Вуаля.
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)
Установка будет происходить из репозиториев, благо это достаточно быстрый и удобный способ. Особой производительности полученного вебсервера нам не требуется. Под катом собственно сама установка.
Далее...
жизнь @ 28 Сентябрь 2008, “8 Comments”
В самом начале, в своём блоге я писал как можно накручивать рейтинг на трекерах. Единственная проблема - этот метод не работает под windows, только в OS где есть bash. Поскольку теперь у меня установлена дополнительно ещё и Windows, то я нашёл способ отправлять запросы к трекеру стандартными win средствами.
Итак, способ почти тот же, за несколькими исключениями:
1. Скачиваем Wireshark для windows
2. Запускаем и проводим ровно те же операции по получению и изменению формы запроса, что и в предыдущей статье.
3. Теперь начинается самое весёлое, а собственно отправка данных на трекер.
Пуск - Выполнить - cmd
Должно открыться приглашение терминала.
Вводим:
telnet bt.torrents.ru 80
[caption id="attachment_339" align="alignnone" width="300" caption="Пункт первый накрутки рейтинга"]Пункт первый накрутки рейтинга[/caption]
Получаем приглашение сервера, нажимаем Ctrl + ], вызывая командную строку telnet.
Вводим:
set localecho[caption id="attachment_340" align="alignnone" width="300" caption="Пункт второй накрутки рейтинга"]Пункт второй накрутки рейтинга[/caption]
Жмём Enter два раза.
Вставляем первый запрос, жмём 2 раза Enter, получаем ответ 200 от сервера и ещё раз жмём Enter, после этого засекаем время ~15 минут, и повторяем процедуру со вторым запросом.
[caption id="attachment_341" align="alignnone" width="300" caption="Пункт третий накрутки рейтинга"]Пункт третий накрутки рейтинга[/caption]
Насколько я понимаю, весь этот процесс также можно автоматизировать, но я вообще не в курсе программирования bat скриптов. Да и желания изучать бесполезную для меня технология - нет.
linux @ 12 Август 2008, “11 Comments”
Скачиваем: wget http://download.deluge-torrent.org/source/0.9.05/deluge-0.9.05.tar.gz
Разархивируем: tar zxvf deluge-0.9.05.tar.gz
Открываем исходники Deluge:
vim deluge-torrent-0.9.05/libtorrent/src/http_tracker_connection.cpp
Исходный код(строка 373):
if (!url_has_argument(request, "uploaded"))
m_send_buffer += "uploaded=";
m_send_buffer += boost::lexical_cast(req.uploaded);
m_send_buffer += '&';
}

Модифицируем так:
if (!url_has_argument(request, "uploaded"))
{
m_send_buffer += "uploaded=";
signed long int upped = req.uploaded;
signed long int reportup = upped*9;
m_send_buffer += boost::lexical_cast(reportup);
m_send_buffer += '&';
}

Компилируем и пользуемся.
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.




← + Ctrl + →