Rtorrent


rTorrent — консольный BitTorrent клиент для Linux/Unix систем, написанный на C++ на основе библиотеки libTorrent. Отличается высокой скоростью и нетребовательностью к системным ресурсам.

sudo apt-get install rtorrent

Тонкая настройка программы осуществляется при помощи конфигурационного файла .rtorrent.rc, размещаемого в домашнем каталоге пользователя. (По умолчанию файл .rtorrent.rc отсутствует. Его нужно создавать самостоятельно.)


sudo touch /home/user/.rtorrent.rc # создаем конфигурационный файл

sudo nano /home/user/.rtorrent.rc # открываем созданный файл для редактирования
Вносим в файл следующие записи:

#минимальное число пиров на торрент
min_peers = 1

#максимальное число пиров на торрент
max_peers = 1000

#максимальная скорость загрузки. 0(KB) -не ограничена
download_rate = 0

#максимальная скорость отдачи. 0 - не ограничена
upload_rate = 0

#каталог для сохранения закачек или откуда будут сидироваться торренты.
directory = /home/user/download/

#каталог куда будет сохраняться состояние торрентов.
#Здесь, в этом примере, они сохраняются в папку  session
session = /home/user/session/

#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы
#и если они есть то ставит их на закачку
schedule = watch_directory,5,5,load_start=/home/user/torrent_auto_load/*.torrent

#номер порта (или нескольких портов) который открывает клиент для обмена данными
port_range = 40890-40890

#случайный выбор порта для обмена данными. В данном случае он отключён
port_random = no

#проверять хэш торрента после закачки
check_hash = yes

#сохранять сессию
session_save = yes

#принимать зашифрованные входящие соединения, устанавливать незашифрованные исходящие соединения,
#если возвращает ошибку, повторять с шифрованием, предпочитать открытый текст после установления
#зашифрованного соединения
encryption = allow_incoming,enable_retry,prefer_plaintext

#использовать udp
use_udp_trackers = yes

# Разрешает работу DHT для безтрекерных торрентов или для случаев, когда все ретрекеры лежат
# (не работают).
# Может принимать значения "disable" (для полного отключения DHT), "off" (не стартует с DHT),
# "auto" (Включает DHT при возможности), или "on" (принудительно включает DHT).
# Значение DHT по умолчанию "off". Для правильной работы DHT каталог сеансов "session" должен
# быть определен.
#  
dht = auto
#
# UDP порт, используемый DHT.
#
dht_port = 6881

# Принудительно устанавливает кодировку UTF-8 для xmlrpc.
# Рекомендуется для устранения проблем при использовании в
# наименованиях торрентов символов кириллицы. Актуально для
# GUI, работающих через xmlrpc.
encoding_list = UTF-8


Настройка параметров работы программы

Основные настройки

bind = a.b.c.d

# bind прослушивает сокет и исходящие подключения к этому сетевому интерфейсу.
# (Это IP, на котором LibTorrent / rtorrent работает. Внешний IP Если вы находитесь за NAT.)
ip = a.b.c.d, ip = hostname
# Устанавливает адрес для ответов к трекеру (требуется пояснение)
port_range = a-b
# Диапазон портов по которым будет идти подключение
port_random = yes | no
# Открывает случайный порт из заданного диапазона
check_hash = yes | no
# Проверять hash файла по окончании закачки
directory = directory
# Директория куда будут скачиваться Ваши файлы
session = directory
# Эта директория, в которую будут размещаться открытые закачки. Можете оставить это поле пустым,
# чтобы все файлы размещались в directory.
http_proxy = url
# HTTP прокси. Если нет нужды - оставьте поле пустым.
encoding_list = кодировка
# Добавить предпочитаемую кодировку для имен файлов. Если при распознавании ни одна кодировка
# не подойдет, будет использована кодировка по-умолчанию.
encryption = option,...
# Настройки шифрования. По умолчанию, шифрование отключено, что эквивалентно параметру none.
# Также возможны варианты:
* allow_incoming (принимать зашифрованные входящие соединения),
* try_outgoing (шифрование исходящих соединений),
* require (запретить незашифрованные обращения),
* require_RC4 (также запретить передачу текста после первичного зашифрованного установления связи),
* enable_retry (если первоначальное исходящее установление связи окажется неудачным, повторить с
# шифрованием, если оно было отключено, и без, если шифрование использовалось),
* prefer_plaintext (использовать текст если пир предлагает выбор между открытым текстом и
# шифрованием RC4, иначе будет использоваться RC4).
schedule = id,start,interval,command
# Вызывает команду через некоторый заданный период времени, начиная с какого то момента.
# Интервал равный нулю равен выполнению команды единожды.
# При выполнении  команды Вы можете использовать временной формат вида:
# день:час:минута:секунда, для примера: выполнять задачу каждый день в
# 18:00 используйте 18:00:00,24:00:00
schedule_remove = id
# Удаляет id задачи из расписания
start_tied =
# Стартует торренты, с похожими именами, которые были заново добавлены.
stop_untied =, close_untied =, remove_untied =
# Останавливает, закрывает или удаляет торренты с именами похожими на удалённые.
# Очистка ассоциаций идет с ключом U
close_low_diskspace = space
# Закрывает все торренты, при достижении критического остатка на жестком диске,
# следует использовать вместе с schedule
load = file, load_verbose = file, load_start = file, load_start_verbose = file
# Загружать и стартовать торренты, если это возможно, или использовать регулярные выражения типа “*”
stop_on_ratio = min_ratio,
stop_on_ratio = min_ratio,min_upload,
stop_on_ratio = min_ratio,min_upload,max_ratio

# Останавливает торренты, когда они достигают минимального рейтинга отдачи min_ratio,
# отданной в процентах. min_upload указывает на минимальное количество информации в байтах.
# Рекомендуется использовать совместно с schedule.
on_insert = id,command, on_erase = id,command, on_open = id,command, on_close = id,command,
on_start = id,command, on_stop = id,command, on_hash_queued = id,command, on_hash_removed = id,command,

on_hash_done = id,command, on_finished = id,command
# Вызывает команду, когда статус закачки изменяется.


Настройки закачек

upload_rate = KB, download_rate = KB
# Определяет скорость раздачи, скачивания.
min_peers = value, max_peers = value
# Указывает минимальное и максимальное количество пиров в загружаемой закачке(торренте)

Если к клиенту подключено меньше пиров, чем указано в min_peers, он попытается получить больше у имеющихся трекеров. Через 30 секунд, клиент повторит попытку, если было получено меньше 10 новых пиров или меньше 3 запросов было выполнено. Дальше он попытается обратиться к следующей группе трекеров в списке, а не к другим трекерам в этой же группе. Такое поведение позволит получить достаточно пиров, сведя к минимуму количество запросов к трекеру, хотя это займет несколько больше времени, чем у других, более агрессивных клиентов.

min_peers_seed = value, max_peers_seed = value
# Устанавливает значение минимального и максимального количества пиров в раздаваемом(сидируемом) торренте,
# по умолчанию -1, то есть неограничено
max_uploads = value
# Устанавливает количество раздач с торрента
max_uploads_div = value, max_downloads_div = value
# Устанавливает количество отдач для одного человека. Отключается, если поставить 0
max_uploads_global = value, max_downloads_global = value
# Максимальное и минимальное количество слотов раздач.

Настройки работы с трекерами

enable_trackers = yes
# Установите значени no, чтобы отключить все запросы к трекеру.
# Бывает полезно в использовании с расписанием.
tracker_dump = filename
# Записывает все запросы к трекеру в файл
use_udp_trackers = yes
# Использовать UDP протокол, лучше отключить(параметр no), если вы находитесь за firewall’ом.

Настройки работы с файлами

max_file_size = size
# Устанавливает максимальный размер файла, отключается параметром -1
split_file_size = size
# Разделяет файлы, больше чем size на несколько файлов, отключается параметром -1
split_suffix = string
# Устанавливает суффикс для таких файлов, по умолчанию: .part
on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,/var/hdd/torrents/complete/ ;d.set_directory=/var/hdd/torrents/"

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


Дополнительные настройки

umask = 002
# Установить значение umask для этого процесса, оно будет присвоено всем файлам созданных программой.
# Выбранная маска будет соответствовать правам доступа -rw-rw-r-- для файлов
handshake_log = yes
# Включить журналированние соединений. Это создает большое количество сообщений,
# но позволяет обнаружить ошибки соединений.
execute_log = /home/my_name/rtorrent.log
# Сохраняет лог в файл


Основной экран
rtorrent

В левом нижнем углу написано [Throttle off/off KB]. Это лимиты на Upload (отдачу) и Download (закачку) соответственно. По умолчанию они выключены. Их можно изменить кнопками a/z, s/x, d/c для изменения лимита отдачи вверх/вниз по 1, 5 и 50 кб/с соответственно, и те же буквы при нажатом Shift или CapsLock для изменения лимита закачки.


Дальше идет [Rate: 0.0 / 0.0 KB] Здесь показаны текущие Upload / Download скорости. [Port:xxxxx] это порт, который использует rTorrent, для входящих соединений.

В правом нижнем углу отображается информация обо всех раздачах

[U 7/0] [D 0/0] [H 0/32] [S 0/9/768] [F 128/128]

1. [U 7/0] Текущее количество используемых слотов раздач и их максимальное число, зависит от параметра max_uploads_global
2. [D 0/0] Текущее количество используемых слотов для скачивания и их максимальное число (0 неограниченно).
3. [H 0/32] Текущее количество активных запросов HTTP (к анонсам трекера и для скачивания .torrent файлов), и максимальное.
4. [S 0/9/768] Эти три числа показывают обращения к пирам для установления соединения/открытые сокеты/максимальное количество открытых сокетов.
5. [F 128/128] Здесь показано текущее и максимально возможное количество открытых файлов. Библиотека динамически закрывает наимее используемые файлы.


Рассмотрим сам торрент. Сначала идет название, далее написано Rate и указаны текущие скорости отдачи и скачивания. После этого сколько было отдано с данного торрента. В квадратных скобках идет рейтинг (являющийся соотношением скачанного/отданного. Если есть слово Inactive означает, что торрент неактивен (на паузе).


В верхней строке написано View: main. Всего их 9: переключаемых кнопками 1-9:

1. Main — по умолчанию.
2. Name — показ торрентов с сортировкой по имени.
3. Started — показ только запущенных торрентов.
4. Stopped — показ только остановленных торрентов.
5. Complete — показ только закачанных на 100% торрентов.
6. Incomplete — показ только недокачанных торрентов.
7. Hashing — показ только хешируемых торрентов.
8. Seeding — показ только сидируемых торрентов.
9. Active — показ только активных торрентов.

В клиенте используется навигация в стиле Lynx. Так называют способ организации интерфейса, при котором передвижение осуществляется стрелками по правилу: вверх/вниз — в пределах текущего уровня, влево/вправо - на уровень выше и на уровень ниже.

Для примера можно выбрать какую-либо из раздач и нажать стрелку вправо. Мы увидим вот такое меню.
rtorrent

* Peer list — список пиров
* Info — информация о торренте
* File list — список файлов в закачиваемом торренте
* Tracker list — список трекеров
* Chunks seen — просмотреть
* Transfer list — список передаваемых кусков

Выберем стрелками пункт File list и нажмём стрелку вправо. Теперь, выбрав нужный файл, можно с помощью пробела поставить ему высокий приоритет (hig) или вообще отказаться от его закачки (off).

Экран Peer list

Некоторые части этого экрана достаточно загадочны, далее расшифровка полей.
IP     UP     DOWN     PEER     C/RE/LO     QS     DONE     REQ     SNUB
1.1.1.1     1.1     0.0     20.5     r/ci/un     3/0     32         


Объяснение

# IP - IP адрес пиров.
# UP - Скорость отдачи (KiB/sec).
# DOWN - Скорость скачивания (KiB/sec).
# PEER - Скорость скачивания (KiB/sec) пира для этого торрента (сообщает вашему клиенту клиент пира).

# C/RE/LO
# C = тип соединения, может быть r, l, R or L.
* r = Входящее, пир инициировал подключение к вашему клиенту.
* l = Исходящее, ваш клиент инициировал подключение к пиру.
* R = Входящее, с использованием шифрования.
* L = Исходящее, с использованием шифрования.
# RE = Информация об удаленном клиенте, состоит из двух частей; первая u или c и вторая i или n.
* c = Пир заблокировал ваш клиент (это значит, что он не собирается отправлять вам куски сейчас).
* u = Пир не заблокировал ваш клиент.
* i = Пир заинтересован в загрузке с вашего клиента.
* n = Пир незаинтересован в загрузке с вашего клиента.
# LO = Информация о локальном клиенте, состоит из двух часте; первая u или c и вторая i или n.
* c = Ваш клиент заблокировал этого пира (это значит, что ваш клиент не собирается отправлять
ему куски сейчас).
* u = Ваш клиент не заблокировал этого пира.
* i = Ваш клиент заинтересован в загрузки с этого пира.
* n = Ваш клиент незаинтересован в загрузке с этого пира.

# QS - Очередь исходящих/Входящие куски. Первое число показывает количество кусков, ожидающих
отправки пиру. Второе - количество кусков, запрошеных вашим клиентом и ожидающих отправления.
# DONE - Процент файла имеющийся у пира.
# REQ - Количество кусков, которые в настоящее время стоят в начале очереди.
# SNUB - В этом поле отображается *, когда пир пренебрегает вашим клиентом. Когда пир соглашается
отправить вам кусок, который ваш клиент запросил, и не отправляет его в определенный период
времени, ваш клиент обозначит этого пира пренебрегающим. Это означает что пир является ненадежным
и лучше просить куски у других пиров.

В статусной строке отображается следующая информация:

Peers: 99(1002) Min/Max: 40/100 Uploads: 15 U/I/C/A: 3/71/5/3 Failed: 0

# Peers - Сумма пиров с которымы вы соединены (не соединены).
# Min/Max - Минимальная и максимальная сумма пиров для сохранения соединения. Может быть изменена
клавишами 3, 4, 5 и 6.
# Uploads - Максимальное количество раздач одновременно (с учетом global upload slots). Может быть
изменено клавишами 1 и 2.
# U/I/C/A
* U = Количество незаблокированных пиров в данный момент
* I = Количество заинтересованных пиров
* C = Завершенные пиры
* A = Счетчик пиров
# Failed - Количество ошибочных кусков.

Использование

Enter — добавить новый torrent файл. Для упрощения ввода имени файла, можно пользоваться клавишей Tab.
* ^T — обновить трэкер
* ^Q — отключает программу, повторное нажатие закрывает программу не посылая трэкеру стоп сигнал
* ^N|<стрелка вниз> — выбор следующего торрента/адреса
* ^P|<стрелка вверх> — выбор предыдущего торрента/адреса
* ^F|<стрелка вправо> — просмотр состояния загрузки/аплоуда торрента
* ^B|<стрелка влево> — возвращает на предыдущий экран
* A|S|D — увеличить скорость загрузки на 1/5/50 кб
* Z|X|C — уменьшить скорость загрузки на 1/5/50 кб
* a|s|d — увеличить скорость отдачи на 1/5/50 кб
* z|x|c — уменьшить скорость отдачи на 1/5/50 кб
* 1—9 — переключение между различными группами (по состоянию загрузки)
* ^S — начать закачку
* ^D — остановить закачку (повторное нажатие удаляет торрент-файл. Данные остаются)
* ^K — закрыть торрент и его файлы
* ^E — пересоздать все файлы торрента
* ^R — перечитать хэш торрента
* ^O — изменить директорию на загрузку (торрент должен быть закрыт)
* +|- — увеличить уменьшить приоритет загрузки торрента
* <backspace> — добавить URL или путь к торренту
* L — просмотреть лог (чтобы выйти нужно нажать пробел)
* ^X — вызвать команду или поменять настройку

Меню торрента

Просматривая состояния конкретного торрента(кнопка ->) можно изменять дополнительные параметры:

* Peer list:
* - остановить отдачу (для выделенного пира)
k - отсоединиться от пира
* File list
space - изменить приоритет файла
стрелка вправо - развернуть(для директорий)
/ - cвернуть(для директорий)
- изменить приоритет всем файлам
* Tracker list
- отключить/включить трекер

April 8, 2010