Установка и настройка торрент-клиента на Raspberry Pi 3

Raspberry Pi 3. Установка и настройка торрент-клиента

Дата Автор Dmitry6 комментариев 3 785 просмотров

В сегодняшней статье из цикла публикаций об использовании Raspberry Pi 3 я расскажу, как сделать на базе этого микрокомпьютера бесшумный и энергоэффективный Torrent Box (торрентокачалку), который может работать круглыми сутками, не обременяя владельца дополнительными расходами на электроэнергию и не мешая спать по ночам издаваемым шумом.

Установка торрент-клиента с возможностью удаленного управления является частью крупного проекта по превращению Raspberry Pi 3 в многофункциональный домашний сервер.

Что нам понадобится

Для осуществления описываемых в этой статье действий понадобится:

О том, как правильно подключить внешний жесткий диск к Raspberry Pi рассказано в этой статье.

Подходит ли Raspberry Pi на роль торрентокачалки?

Перед тем, как обсуждать процесс установки и настройки торрент-клиента на Raspberry Pi, хотелось бы затронуть вопрос того, насколько она вообще подходит для работы с торрентами.

У Raspberry Pi есть несколько общеизвестных слабых мест:

  • Ethernet только на 10/100Mbit
  • Отсутствие SATA
  • Все 4 USB-порта и Ethernet-адаптер висят на одной шине

То есть, вместо быстрого интерфейса SATA доступ к жесткому диску будет осуществляться по более медленному интерфейсу USB 2.0, максимальная пропускная способность которого составляет 480Мбит/с. Более того, эта максимальная пропускная способность будет распределяться на все 4 USB-порта и Ethernet-контроллер.

Давайте разбираться дальше.

Ethernet-контроллер, работающий на скоростях до 100Мбит — это плохо. Потому что современные роутеры и гигабитные Ethernet-адаптеры поддерживают намного большие скорости. Но плохо это только внутри локальной сети. Потому что за пределами локальной сети вы все равно упираетесь в ограничение в виде скорости интернет-канала, которая у подавляющего большинства пользователей не превышает 100Мбит, а многие не имеют даже и такой скорости.

Идем дальше. Предположим, что из 480Мбит/с максимальной пропускной способности 100Мбит/с отъедает под себя Ethernet. Остается 380Мбит/с для жесткого диска, подключенного к одному из USB-портов.

380Мбит/с это меньше, чем 6Гбит/с по стандарту подключения SATA-III. Но все еще больше, чем 100Мбит/с — максимальная скорость, с которой данные могут скачиваться на «малину» из интернета. Таким образом, низкие ТТХ «малины» не являются «бутылочным горлышком» при загрузке файлов из интернета — таковым в данном случае является сам интернет-канал.

Вывод: Raspberry Pi 3 будет хорошо чувствовать себя в качестве TorrentBox в любом случае, а если скорость вашего интернет-канала ниже 100Мбит/с, то параллельно с загрузкой торрентов можно совершать другие операции с содержащимися на подключенном к Raspberry Pi жестком диске файлами — например, воспроизводить музыку или видео. Пропускной способности хватит на все.

Оптимальный torrent-клиент для Raspberry Pi

Существует 3 основных торрент-клиента, которые обычно используются на Raspberry Pi:

  • Deluge
  • rTorrent
  • Transmission

Из них Deluge и Transmission поддерживают удаленное управление «из коробки», а rTorrent является консольным торрент-клиентом, веб-интерфейс к которому прикручивается отдельно.

В плане скорости и качества работы все три этих клиента примерно одинаковы. Поэтому имеющие опыт работы с Linux-системами пользователи обычно отдают предпочтение знакомому клиенту: пользовался rTorrent на компьютере — устанавливаешь привычный себе rTorrent на Raspberry Pi, пользовался Deluge — устанавливаешь Deluge и т.п.

Я же выбрал Transmission. Потому что из всех трех клиентов он, на мой взгляд, наиболее прост и удобен в установке и настройке.

Transmission является популярным торрент-клиентом, поддерживает удаленное управление через веб-интерфейс как по локальной сети так и по интернету, существует уже много лет и является стандартным приложением в некоторых дистрибутивах Linux.

Его и будем устанавливать.

Подготовительные действия

Перед установкой торрент-клиента нужно сделать два простых действия — создать папку для загрузки и хранения торрентов и увеличить размер файла подкачки.

Увеличиваем размер файла подкачки

Первым делом увеличим размер файла подкачки со стандартного значения в 100Мб до 512Мб.

Он будет использоваться если вдруг по каким-то причинам Raspberry Pi 3 перестанет хватать размера своей оперативной памяти.

Вряд ли это произойдет, 1Гб RAM за глаза хватает «малине» для выполнения функций домашнего сервера, но на всякий случай стоит подстраховаться.

Открываем для редактирования файл настроек:

sudo nano /etc/dphys-swapfile

Установка и настройка торрент-клиента на Raspberry Pi 3

И меняем значение CONF_SWAPSIZE со 100 на 512.

Сохраняем изменения и перезагружаем «малину» чтобы они вступили в силу:

sudo reboot

Создаем директорию для загрузки торрентов

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

sudo mkdir /mnt/usbstorage/Torrents
sudo chmod 777 /mnt/usbstorage/Torrents

На этом подготовка завершена. Остается только установить и настроить Transmission.

Установка и настройка Transmission

Торрент-клиент Transmission представляет собой постоянно запущенное и работающее в фоне приложение. Такие приложения в Linux-среде называют демонами (daemon).

Устанавливаем Transmission:

sudo apt-get update
sudo apt-get install transmission-daemon

После установки демон Transmission запустится автоматически. Необходимо его отключить на время настройки, иначе вносимые изменения не будут сохраняться:

sudo /etc/init.d/transmission-daemon stop

Теперь настроим Transmission под себя через правку файла настроек:

sudo nano /etc/transmission-daemon/settings.json

Установка и настройка торрент-клиента на Raspberry Pi 3В этом файле нас интересуют следующие строки:

"download-limit": 100000,

— Максимальная скорость закачки в килобитах в секунду. Можно ограничить ее по своему желанию. Мой интернет-канал работает со скоростью 50Мбит днем и 100Мбит ночью, поэтому я выставил 100000, что соответствует 100Мбит/с — максимальной пропускной способности моего интернет-канала, исходя из соображений, что «малина» все равно не выберет и половины теоретически доступного предела.

"download-dir": "/mnt/usbstorage/Torrents",

— Путь к папке, в которую будут сохраняться загрузки. Меняем на свой путь к папке на внешнем жестком диске, иначе загрузки будут сохраняться на microSD-карту с системой, что неудобно и ускоряет ее износ.

"incomplete-dir": "/mnt/usbstorage/Torrents",

— Можно настроить так, чтобы незавершенные закачки сохранялись в отдельную директорию. Дело вкуса, я предпочитаю не разделять готовые и незавершенные закачки по разным папкам.

"incomplete-enabled": false,

— Отключение опции разделения по разным папкам готовых и незавершенных закачек.

"download-queue-size": 5,

— Максимальное количество одновременно запущенных закачек. Если Transmission начнет виснуть при работе, то это значение необходимо уменьшить сперва до 3, а если зависания не прекратятся, то до 1. При значении 1 все закачки будут идти поочередно и мощности Raspberry Pi гарантированно хватит.

"rpc-enabled": true,

— Включение удаленного управления (через веб-интерфейс). Эта опция включена по умолчанию, ее не трогаем.

"rpc-whitelist": "192.168.*.*",

— Белый список IP-адресов, с которых возможно удаленное управление. 192.168.*.* — маска локальной сети, позволяющая получать доступ к веб-интерфейсу Transmission с любого компьютера, но только из своей локальной сети. Если планируется управлять торрент-закачками через интернет, то настройки нужно изменить: либо добавив в «белый список» свои внешние IP-адреса, либо отключив «белый список» и включив вместо него парольную аутентификацию.

"rpc-whitelist-enabled": true,

— Включение «белого списка» IP-адресов, о котором шла речь выше.

"rpc-authentication-required": false,

– Отключение парольной защиты доступа к веб-интерфейсу Transmission, которая изначально включена. Если ее не отключить, то веб-интерфейс перестает открываться в браузере Safari на iOS. Кроме того, при ограничении доступа «белым списком» IP-адресов необходимость парольной защиты отпадает.

"rpc-username": "логин",

— Логин для удаленного управления, используется если парольная защита все-таки активирована.

"rpc-password": "пароль",

— Пароль для удаленного управления, используется если парольная защита все-таки активирована. Пароль нужно вписывать в чистом виде (как он будет вводиться), после перезапуска Transmission его значение в этом поле будет автоматически зашифровано.

"rpc-port": 9091,

— Порт для доступа к удаленному управлению. Его надо запомнить — в дальнейшем он будет использоваться для доступа к веб-интерфейсу Transmission.

"rpc-url": "/transmission",

— Адрес, по которому будет располагаться веб-интерфейс для удаленного управления.

"prefetch-enabled": 0,

— Отключение кэширования.

"preallocation": 0,

— Отключение предварительного резервирования места под файлы.

На этом основную настройку Transmission можно считать завершенной. Теперь нужно запустить демон Transmission повторно:

sudo /etc/init.d/transmission-daemon start

Если стандартные настройки используемого порта не менялись, то торрент-клиентом можно пользоваться, открыв адрес http://ip-адрес-raspberry-pi:9091 в любом браузере:

Установка и настройка торрент-клиента на Raspberry Pi 3

Как полностью отключить Upload

Отдельно напишу как полностью отключить сидирование раздач в Transmission.

Делать это не обязательно и даже противоречит этике пользования торрентами.

Но по мне, так большинство раздаваемого в сети контента прекрасно проживет даже если я не буду тратить ресурс своего жесткого диска и загружать исходящий канал ради того, чтобы стоять на раздаче. И большинство публичных торрент-трекеров в этом вопросе со мной согласно и уже давно отключило у себя учет соотношения загруженного и отданного каждым конкретным пользователем.

Отключение раздач в Transmission происходит через правку того же файла настроек:

sudo nano /etc/transmission-daemon/settings.json

В котором нужно отредактировать следующие строки:

"ratio-limit": 0,
"ratio-limit-enabled": true,

— Выставляем предел соотношения загруженного к отданному, после которого автоматически прекращается сидирование раздачи. Если выставить этот предел на 0, то сидирование даже не будет начинаться.

"speed-limit-up": 0,
"speed-limit-up-enabled" true,

— Выставляем ограничение максимальной скорости раздач на 0. Просто как дополнительную гарантию, что сидирование не начнется даже если случайно будет отключен выставленный нами на 0 ratio limit.

Кроме того, эти две опции можно отредактировать позднее уже из веб-интерфейса Transmission, нажав на иконку с гаечным ключом в левом нижнем углу и выбрав в открывшемся меню сперва «Stop seeding at ratio: 0» на вкладке Torrents, а затем «Upload (kB/s): 0» на вкладке «Speed».

Вместо заключения: испытание Raspberry Pi 3 в качестве торрент-качалки

Посмотрим, как работает Transmission на Raspberry Pi 3.

Зайдем в веб-интерфейс с удаленного компьютера и поставим на закачку какой-нибудь торрент:

Установка и настройка торрент-клиента на Raspberry Pi 3Скорость скачивания 5,46Мб/с (мегабайт в секунду), что соответствует 43Мбит. Скорость моего канала днем — 50Мбит. Получается, что «малина» задействует канал почти полностью, и ни устаревший Ethernet-адаптер, ни USB 2.0 вместо SATA-III ей не преграда.

А вот так выглядит интерфейс Transmission на экране айфона:

Установка и настройка торрент-клиента на Raspberry Pi 3

И в горизонтальном положении на том же айфоне:

Установка и настройка торрент-клиента на Raspberry Pi 3

Интерфейс хорошо масштабируется, все элементы достаточно крупны для управления с сенсорного экрана. Процесс же управления Transmission ничем не отличается от управления любым привычным торрент-клиентом под Windows.

Transmission понимает magnet-ссылки, позволяет добавлять .torrent-файлы с компьютера или загружать их прямо с торрент-трекеров.

При подключении жесткого диска достаточного объема можно разгрузить свой основной компьютер от задач по скачиванию торрентов, полностью перепоручив это дело Raspberry Pi. Это просто, удобно и технологично :).

Raspberry Pi 3B (английская сборка)в интернет-магазине GearBest Raspberry Pi 3B (китайская сборка)в интернет-магазине GearBest

Понравилась статья? Выразите благодарность автору переводом любой суммы на ваше усмотрение :)

6 комментария на «Raspberry Pi 3. Установка и настройка торрент-клиента»

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

    • Вообще, демон руками принудительно включается только после принудительного же ручного отключения (для смены настроек, например). А так он прописывается в автозагрузке и запускается автоматически, так что трогать его не нужно..

      Попробую в ближайшее время установить у себя еще раз Transmission с нуля чтобы попытаться понять что во время установки по моей инструкции могло пойти не так.

  2. У меня такая же история. Принудительный рестарт помогает хотя, но хотелось на автоматом после перезагрузки. Заранее спасибо

  3. На многих, кстати говоря, публичных трекерах, где раздавать не обязательно при попытке добавить торрент путём копирования ссылки на его файлы, transmission возвращает ошибку : gotMetadataFromURL: http error 404: Not Found. Бывает и 403я иногда. Работает только добавлением скачанного файла, что делает доступ через, например, телефон, неудачным и куцым решением. Так же очень хотелось бы настроить доступ к web-интерфейсу transmission из глобальной сети, чтобы можно было находясь на работе или ещё где добавлять малинке сериал/фильм на закачку, чтобы вечером домой приехать и посмотреть. Везде рекомендуют покупать у провайдера внешний статический IP и делать проброс портов на роутере. Единственный вариант без этих заморочек — сервис Weaved, который позволяет установить SSH и VNC соединение не из локальной сети, но Web-соединение в бесплатной версии даёт только 5 минут в сутки. Какие ещё есть способы решить эту задачу?
    Спасибо

    • По первому вопросу я не знаю что ответить. Тут скорее надо спросить на каком-нибудь форуме, где обсуждают конкретно торрент-клиенты под Linux, или непосредственно Transmission.
      По второму вопросу:
      1. Есть RealVNC (он же предустановлен в качестве VNC-сервера в Raspbian по умолчанию), который позволяет поднимать соединения через свое облако из интернета. До 5 устройств можно подключить бесплатно, судя по информации на оф.сайте
      2. Можно использовать Dynamic DNS — это позволяет обойтись без покупки статического IP у провайдера.
      2. Можно создать Telegram-бота, который постоянно доступен в сети и залочен на прием команд только с определенных ID. Самый безопасный на мой взгляд внешнего управления Raspberry Pi, потому что историй взлома Телеграма пока что общественность не знает. Некоторые наработки по этой теме можно нагуглить. Но тут все завязано на умение программировать, т.к. все функции бота придется писать с нуля.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *