Консольные torrent клиенты
Категория: / DEV Блог
/ Сервер (FreeBSD)
Рассмотрим ctorrent и rtorrent.
Оба доступны из портов в /usr/ports/net-p2p.
1) ctorrent
Запускаем ctorrent -s "./путь" "torrent"
Начнет закачивать торрент в папку "./путь".
2) rtorrent
Более продвинутый клиент. Использует ncurses - а это значит имеет псевдо оконный интерфейс.
Запускаем клиент, попадаем в окно, в котором нужно что то делать :)
^q - Выход
up, down, left, right
^P, ^N, ^B, ^F - Выбор опций, экранов
a, s, d - ускорить аплоад на 1/5/50 KB.
z, x, c - уменьшить скорость отдачи/5/50 KB.
Верхний регистр (тоже самое с shift'ом) (A, S, D, Z, X, C) - регулируют скорость закачки (download).
1 - 7 - сменить вид (все, сидируемые, скачиваемые, завершенные и т.д.)
^S - начать загрузку
^D - остановить, повторное нажатие удалит торрент
^O - изменить папку назначения
^X - выполнить внутреннюю команду rtorrentа
^Q - выход из программы. двойное нажатие не оповещает трекер.
+, - - приоритет загрузки
пробел - регулировка приоритета файлов торрента (можно отключить закачку отдельного файла)
backspace - добавить торрент для закачки
l - лог
U - удалить торрент
u - показать информацию по загрузке
o - показать трекеры. пробелом выбираем
p - информация о пире
t, T - запрос трекера
k - дисконнект пира
Установить без компиляции - pkg_add -r rtorrent-devel
Конфигурация (~/.rtorrent.rc)
Если вы находитесь за фаерволом (?)
Для rtorrent есть вебдванольная морда wTorrent (http://www.wtorrent-project.org/)
Которая связывается с rtorrent посредством xmlrpc. Для работы скрипта необходим lighttpd c mod_scgi.
Rtorrent поддерживает "скрипты" для своей кастомизации, подробнее описано на сайте разработчика
http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks
Если торрент перестал скачиваться/раздаваться
Рекомендуется нажать ^D на нем (это почти F5 в браузере).
Торрент перезагрузится и продолжит свое функционирование. Вероятно баг (?).
У меня часто закачки замирают - возможно из-за нестабильного интернета, разрывов связи (vpn),
и других похожих проблем.
Ретинги и торренты
Если у вас слабый канал, можно немножко подкрутить счетчики рейтинга для торрентов (обмануть трекер).
К примеру - диффы для rtorrent0.8.3. Что мы делаем - меняем значения - отданого умножаем на два, скаченного делим на два,
осталось скачать делим на два. При этом представляемся другим клиентом, чтобы не палить свой rtorrent.
Оба доступны из портов в /usr/ports/net-p2p.
1) ctorrent
Запускаем ctorrent -s "./путь" "torrent"
Начнет закачивать торрент в папку "./путь".
2) rtorrent
Более продвинутый клиент. Использует ncurses - а это значит имеет псевдо оконный интерфейс.
Запускаем клиент, попадаем в окно, в котором нужно что то делать :)
^q - Выход
up, down, left, right
^P, ^N, ^B, ^F - Выбор опций, экранов
a, s, d - ускорить аплоад на 1/5/50 KB.
z, x, c - уменьшить скорость отдачи/5/50 KB.
Верхний регистр (тоже самое с shift'ом) (A, S, D, Z, X, C) - регулируют скорость закачки (download).
1 - 7 - сменить вид (все, сидируемые, скачиваемые, завершенные и т.д.)
^S - начать загрузку
^D - остановить, повторное нажатие удалит торрент
^O - изменить папку назначения
^X - выполнить внутреннюю команду rtorrentа
^Q - выход из программы. двойное нажатие не оповещает трекер.
+, - - приоритет загрузки
пробел - регулировка приоритета файлов торрента (можно отключить закачку отдельного файла)
backspace - добавить торрент для закачки
l - лог
U - удалить торрент
u - показать информацию по загрузке
o - показать трекеры. пробелом выбираем
p - информация о пире
t, T - запрос трекера
k - дисконнект пира
Установить без компиляции - pkg_add -r rtorrent-devel
Конфигурация (~/.rtorrent.rc)
download_rate = 200
upload_rate = 150
# незавершенные торренты
directory = /disk01/torrents
session = /disk01/torrents/.session
# место, где rtorrent ищет новые .torrent файлы
schedule = watch_directory,5,5,load_start=/disk01/torrents/.torrents/*.torrent
schedule = tied_directory,5,5,start_tied=
schedule = untied_directory,5,5,close_untied=
# переместить после закачки
on_finished = move_complete,"execute=mv,-n,$d.get_base_path=,/usr/downloads/uploads/torrents/ ;d.set_directory=/usr/downloads/uploads/torrents/"
execute_log = /var/log/rtorrent.log
# Port range to use for listening.
port_range = 55556-55560
# для wtorrentа
scgi_local = /tmp/rtorrent.rpc.socket
# без этого падал на freebsd-7.1-stable
encoding_list = CP1251
# вроде как увеличивает скорость хэширования
hash_read_ahead = 8
hash_max_tries = 5
hash_interval = 10
Если вы находитесь за фаерволом (?)
use_udp_trackers = no
Для rtorrent есть вебдванольная морда wTorrent (http://www.wtorrent-project.org/)
Которая связывается с rtorrent посредством xmlrpc. Для работы скрипта необходим lighttpd c mod_scgi.
Rtorrent поддерживает "скрипты" для своей кастомизации, подробнее описано на сайте разработчика
http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks
Если торрент перестал скачиваться/раздаваться
Рекомендуется нажать ^D на нем (это почти F5 в браузере).
Торрент перезагрузится и продолжит свое функционирование. Вероятно баг (?).
У меня часто закачки замирают - возможно из-за нестабильного интернета, разрывов связи (vpn),
и других похожих проблем.
Ретинги и торренты
Если у вас слабый канал, можно немножко подкрутить счетчики рейтинга для торрентов (обмануть трекер).
К примеру - диффы для rtorrent0.8.3. Что мы делаем - меняем значения - отданого умножаем на два, скаченного делим на два,
осталось скачать делим на два. При этом представляемся другим клиентом, чтобы не палить свой rtorrent.
diff /rtorrent-0.8.3/configure
22706c22706
< #define USER_AGENT std::string(PACKAGE "/" VERSION "/") + torrent::version()
---
> #define USER_AGENT "uTorrent/1700"
diff libtorrent-0.12.3/configure
2095c2095
< #define PEER_NAME "-lt0C30-"
---
> #define PEER_NAME "-UT1700-"
diff libtorrent-0.12.3/src/protocol/peer_connection_leech.cc
114c114,115
< if (cachedTime - m_timeLastRead > rak::timer::from_seconds(240))
---
> // if (cachedTime - m_timeLastRead > rak::timer::from_seconds(240))
> if (cachedTime - m_timeLastRead > rak::timer::from_seconds(20))
diff libtorrent-0.12.3/src/tracker/tracker_http.cc
130,132c130,132
< s << "&uploaded=" << info->uploaded_adjusted()
< << "&downloaded=" << info->completed_adjusted()
< << "&left=" << info->slot_left()();
---
> s << "&uploaded=" << (2 * info->uploaded_adjusted())
> << "&downloaded=" << (0.5 * info->completed_adjusted())
> << "&left=" << (0.5 * info->slot_left()());
Во freebsd нет флага -u
в makefile /usr/ports/net-p2p/rtorrent
дописываем
.if !defined(WITHOUT_XMLRPC)
CONFIGURE_ARGS+= --with-xmlrpc-c
LIB_DEPENDS+= xmlrpc.9:$PORTSDIR/net/xmlrpc-c
CFLAGS+= -I/usr/local/include -L/usr/local/lib -lxmlrpc_client -lxmlrpc_server -lxmlrpc_server_abyss -lxmlrpc_cpp -lxmlrpc -lxmlrpc_util -lxmlrpc_xmlparse -lxmlrpc_xmltok -lpthread
.else
CONFIGURE_ARGS+= --with-xmlrpc-c=no
.endif
Также в /usr/ports/net-p2p/rtorrent-devel (его собираем)
комментим строку //#include <getopt.h>
После этих действий рторрен-девел собирается.