Консольный клиент rTorrent
rTorrent — консольный BitTorrent клиент для Linux/Unix систем, написанный на C++. Отличается высокой скоростью и нетребовательностью к системным ресурсам.
На линукс Убунту и похожие сборки устанавливается командой
sudo apt install rtorrent
Запускать клиент следует командой
sudo rtorrent (sudo для того чтобы дать ему права на запись и сохранение файлов).
Как работать с клиентом:
Настройка
Тонкая настройка программы осуществляется при помощи конфигурационного файла .rtorrent.rc, размещаемого в домашнем каталоге пользователя. (По умолчанию файл .rtorrent.rc отсутствует, его нужно создавать самостоятельно, об этом мы поговорим чуть ниже).
Внешний вид
В левом нижнем углу написано [Throttle off/off KB]. Это лимиты на скорость закачки Upload (отдачу) и Download (закачку) соответственно чтобы не перегружать сеть, если у вас медленный или лимитированный интернет. По умолчанию они выключены. Их можно изменить кнопками a/z, s/x, d/c для изменения лимита отдачи вверх/вниз по 1, 5 и 50 кб/с соответственно, и те же буквы при нажатом Shift или CapsLock для изменения лимита закачки.
Дальше идет [Rate: 1.6 / 1458.4 KB] Это показаны текущие Upload/Download скорости. [Port:40890] это порт, который использует rTorrent по умолчанию для входящих соединений.
В правом нижнем углу отображается информация обо всех раздачах (часть цифр сейчас не видно, чтобы они открылись надо растянуть терминал или развернуть на весь экран)
[U 0/0] [D 0/0] [H 0/32] [S 0/9/768] [F 128/128]
[U 0/0] Текущее количество используемых слотов раздач и их максимальное число, зависит от параметра max_uploads_global в настройках конфига.
[D 0/0] Текущее количество используемых слотов для скачивания и их максимальное число (0 неограниченно).
[H 0/32] Текущее количество активных запросов HTTP (к анонсам трекера и для скачивания .torrent файлов), и максимальное.
[S 0/9/768] Эти три числа показывают обращения к пирам для установления соединения/открытые сокеты/максимальное количество открытых сокетов.
[F 128/128] Здесь показано текущее и максимально возможное количество открытых файлов. Библиотека динамически закрывает наименее используемые файлы и открывает по новой когда освобождается место.
Рассмотрим сам торрент.
В верхней строке написано View: main - это основной экран программы. Всего их 9: переключаемых кнопками 1-9:
Main — по умолчанию.
Name — показ торрентов с сортировкой по имени.
Started — показ только запущенных торрентов.
Stopped — показ только остановленных торрентов.
Complete — показ только закачанных на 100% торрентов.
Incomplete — показ только недокачанных торрентов.
Hashing — показ только хешируемых торрентов.
Seeding — показ только сидируемых торрентов.
Active — показ только активных торрентов.
В клиенте используется навигация в стиле браузера Lynx. Так называют способ организации интерфейса, при котором передвижение осуществляется стрелками по правилу: вверх/вниз — в пределах текущего уровня, влево/вправо - на уровень выше и на уровень ниже. Для примера можно стрелками вверх-вниз выбрать какую-либо из раздач и нажать стрелку вправо. Мы увидим вот такое меню.
Peer list — список пиров
Info — информация о торренте
File list — список файлов в закачиваемом торренте
Tracker list — список трекеров
Chunks seen — просмотреть
Transfer list — список передаваемых кусков
Выберем стрелками пункт File list и нажмём стрелку вправо.
Теперь, выбрав нужный файл, можно с помощью пробела поставить ему высокий приоритет (hig) или вообще отказаться от его закачки (off).
Экран Peer list
Некоторые части этого экрана достаточно загадочны, далее расшифровка полей.
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 - Количество кусков, которые в настоящее время стоят в начале очереди.
В статусной строке отображается следующая информация:
Peers: 2(0) Min/Max: 1/1000 итд..
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 — начать закачку (значок ^ это кнопка Ctrl)
^D — остановить закачку (повторное нажатие удаляет торрент-файл. Данные остаются)
^K — закрыть торрент и его файлы
^E — пересоздать все файлы торрента
^R — перечитать хэш торрента
^O — изменить директорию на загрузку (торрент должен быть закрыт)
+|- — увеличить уменьшить приоритет загрузки торрента
Пробел— добавить URL или путь к торренту
L — просмотреть лог (чтобы выйти нужно нажать пробел)
^X — вызвать команду или поменять настройку
Просматривая состояния конкретного торрента (кнопка ->) можно изменять дополнительные параметры:
Peer list:
* - остановить отдачу (для выделенного пира)
k - отсоединиться от пира
File list
Пробел - изменить приоритет файла
стрелка вправо - развернуть (для директорий)
/ - cвернуть (для директорий)
* - изменить приоритет всем файлам
Tracker list
* - отключить/включить трекер
Файл конфига
Для создания этого файла можно использовать команды и параметры ниже, но это сложно и долго, потому в конце я дам шаблон своего уже готового работающего файла:
Настройки:
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 = кодировка
prefer_plaintext
#использовать текст если пир предлагает выбор между открытым текстом и шифрованием RC4, иначе будет использоваться RC4
peer_exchange = yes | no
#Включает/выключает расширения торрентов не помеченных как приватные. По умолчанию выключено.
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
#Вызывает команду, когда статус закачки изменяется
Шаблон моего файла конфига с моими комментариями
Можете брать себе и юзать кто хочет, он точно рабочий. Вот как он выглядит в редакторе:
То есть просто создавайте в своей домашней папке тексовый файл
sudo nano .rtorrent.rc
Потом копируйте в него следующий текст который ниже (решетки ставятся перед комментами, система игнорирует строки, закомменченные решетками). Сохраняете файл. И еще вам в домашней папке понадобится создать подпапки, откуда будут считываться торрент-файлы, куда будут сохраняться закачки итд, и прописать к ним пути. Почитаете конфиг - поймете что к чему, там несложно, комменты все написаны понятно.
#минимальное число пиров на торрент
min_peers = 1
#максимальное число пиров на торрент
max_peers = 1000
#максимальная скорость загрузки
download_rate = 0
#максимальная скорость отдачи. 0 - не ограничена
upload_rate = 0
#каталог для сохранения закачек или откуда будут сидироваться торренты.
directory = /home/lin/bufer/torrent/
#каталог куда будет сохраняться состояние торрентов.
#Здесь, в этом примере, они сохраняются в папку session
session = /home/lin/bufer/session/
#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы
#и если они есть то ставит их на закачку
schedule = watch_directory,5,5,"load_start=/home/lin/bufer/torrent/*.torrent"
#номер порта (или нескольких портов) который открывает клиент для обмена данными
port_range = 40890-40890
#случайный выбор порта для обмена данными. В данном случае он отключён
port_random = no
#проверять хэш торрента после закачки
check_hash = yes
#сохранять сессию
session_save = yes
#принимать зашифрованные входящие соединения, устанавливать незашифрованные исходящие соединения, если возвращает ошибку, повторять с шифрованием, предпочитать открытый текст после установления зашифрованного соединения
encryption = allow_incoming,enable_retry,prefer_plaintext
#использовать udp
trackers.use_udp.set = yes
#Разрешает работу DHT для безтрекерных торрентов или для случаев, когда все ретрекеры лежат/не работают
#Может принимать значения "disable" (для полного отключения DHT), "off" (не стартует с DHT)
#"auto" (Включает DHT при возможности), или "on" (принудительно включает DHT).
#Значение DHT по умолчанию "off". Для правильной работы DHT каталог сеансов "session" должен быть определен.
dht.mode.set = auto
#UDP порт, используемый DHT.
dht.port.set = 6881
#Принудительно устанавливает кодировку UTF-8 для xmlrpc.
#Рекомендуется для устранения проблем при использовании в
#наименованиях торрентов символов кириллицы. Актуально для
#GUI, работающих через xmlrpc.
encoding.add = UTF-8`