Разбираю как поставить и начать использовать rtorrent на Ubuntu 18.04 LTS Server amd64

Для справки клиент rTorrent — это консольный BitTorrent клиент для Ubuntu и других систем который быстр и очень нетребователен к ресурсам. Я его раньше использовал на Ubuntu Precise, но с тех мне на Desktop редакциях хватало Transmission. А тут ко мне в Telegram-профиль (@aka_ekzorchik) постучался человек которого я проконсультирован какие Torrent-клиенты я когда либо использовал на системах Ubuntu. Указав rTorrent & Transmisson Web призадумался, а что сейчас можно ли использовать rTorrent на Ubuntu 18.04 Server amd64. Но я хотел бы не консольное использование, а через Web. Тестовые стенды показали что повторение с различными нюансами от Precise сервис запускается, но не реагирует на добавление, удаление, просмотр торрентов. Пришлось анализировать доступную информацию и собирать воедино. Вот об этом моя заметка посредством которой у меня получилось установить и использовать в повседневности rTorrent на Ubuntu 18.04 развернутого на хранилище HP MicroServer Gen8.

Первым делом подготавливаю систему (дистрибутив из образа: ubuntu-18.04.2-server-amd64.iso) по своему видению настройки, у Вас это свое:

ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject

ekzorchik@srv-bionic:~$ sudo ./dproject/default

За работу утилиты rtorrent на достижение результата работы через Web интерфейс отвечает связка: Apache2 + Flood (используется Node.js)

ekzorchik@srv-bionic:~$ sudo apt-get install rtorrent screen curl -y

ekzorchik@srv-bionic:~$ sudo adduser --disabled-password rtorrent

Adding user `rtorrent' ...

Adding new group `rtorrent' (1001) ...

Adding new user `rtorrent' (1001) with group `rtorrent' ...

Creating home directory `/home/rtorrent' ...

Copying files from `/etc/skel' ...

Changing the user information for rtorrent

Enter the new value, or press ENTER for the default

Full Name []: rtorrent

Room Number []:

Work Phone []:

Home Phone []:

Other []:

Is the information correct? [Y/n] y

ekzorchik@srv-bionic:~$ sudo nano /home/rtorrent/.rtorrent.rc

# Where rTorrent saves the downloaded files

directory = /srv/torrent/downloads

# Where rTorrent saves the session

session = /srv/torrent/.session

# Which ports rTorrent can use (Make sure to open them in your router)

port_range = 50000-50000

port_random = no

# Check the hash after the end of the download

check_hash = yes

# Enable DHT (for torrents without trackers)

dht = auto

dht_port = 6881

peer_exchange = yes

# Authorize UDP trackers

use_udp_trackers = yes

# Enable encryption when possible

encryption = allow_incoming,try_outgoing,enable_retry

# SCGI port, used to communicate with Flood

scgi_port = 127.0.0.1:5000

ekzorchik@srv-bionic:~$ sudo mkdir /srv/torrent

ekzorchik@srv-bionic:~$ sudo mkdir /srv/torrent/downloads

ekzorchik@srv-bionic:~$ sudo mkdir /srv/torrent/.session

ekzorchik@srv-bionic:~$ sudo chmod 775 -R /srv/torrent

ekzorchik@srv-bionic:~$ sudo chown rtorrent:rtorrent -R /srv/torrent/

ekzorchik@srv-bionic:~$ sudo chown rtorrent:rtorrent /home/rtorrent/.rtorrent.rc

ekzorchik@srv-bionic:~$

ekzorchik@srv-bionic:~$ sudo nano /etc/systemd/system/rtorrent.service

[Unit]

Description=rTorrent

After=network.target

[Service]

User=rtorrent

Type=forking

KillMode=none

ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent

ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent

WorkingDirectory=%h

[Install]

WantedBy=default.target

ekzorchik@srv-bionic:~$ sudo systemctl enable rtorrent.service

Created symlink /etc/systemd/system/default.target.wants/rtorrent.service → /etc/systemd/system/rtorrent.service.

ekzorchik@srv-bionic:~$ sudo systemctl start rtorrent

Устанавливаю в систему пакет Flood:

ekzorchik@srv-bionic:~$ sudo apt install curl build-essential git

ekzorchik@srv-bionic:~$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

ekzorchik@srv-bionic:~$ sudo apt-get install -y nodejs

ekzorchik@srv-bionic:~$ cd /srv/torrent/

ekzorchik@srv-bionic:/srv/torrent$ sudo git clone https://github.com/jfurrow/flood.git

ekzorchik@srv-bionic:/srv/torrent$ cd flood/

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo cp config.template.js config.js

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo rm -rf package-lock.json node_modules/

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo npm cache clean --force

npm WARN using --force I sure hope you know what you are doing.

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo npm i --unsafe-perm node-sass

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo npm install

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo npm audit fix

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo npm install -g node-gyp

ekzorchik@srv-bionic:/srv/torrent/flood$ sudo npm run build

ekzorchik@srv-bionic:/srv/torrent/flood$ cd ~

Запускаем Flood:

ekzorchik@srv-bionic:~$ sudo adduser --disabled-password flood

Adding user `flood' ...

Adding new group `flood' (1002) ...

Adding new user `flood' (1002) with group `flood' ...

Creating home directory `/home/flood' ...

Copying files from `/etc/skel' ...

Changing the user information for flood

Enter the new value, or press ENTER for the default

Full Name []: flood

Room Number []:

Work Phone []:

Home Phone []:

Other []:

Is the information correct? [Y/n] y

ekzorchik@srv-bionic:~$ sudo chown -R flood:flood /srv/torrent/flood/

ekzorchik@srv-bionic:~$ sudo nano /etc/systemd/system/flood.service

[Service]

WorkingDirectory=/srv/torrent/flood

ExecStart=/usr/bin/npm start

Restart=always

StandardOutput=syslog

StandardError=syslog

SyslogIdentifier=notell

User=flood

Group=flood

Environment=NODE_ENV=production

[Install]

WantedBy=multi-user.target

ekzorchik@srv-bionic:~$ sudo systemctl enable flood.service

Created symlink /etc/systemd/system/multi-user.target.wants/flood.service → /etc/systemd/system/flood.service.

ekzorchik@srv-bionic:~$ sudo systemctl start flood

Теперь создаю Web-сайт на отображение связки rtorrent + proxy_http + flood:

Из информации что пакет libapache2-mod-proxy-html более не как пакет, а содержится внутри apache2-bin, его содержание включает в себя: https://packages.ubuntu.com/bionic/amd64/apache2-bin/filelist

ekzorchik@srv-bionic:~$ sudo apt-get install apache2 apache2-bin -y

ekzorchik@srv-bionic:~$ sudo a2enmod proxy_http

Considering dependency proxy for proxy_http:

Enabling module proxy.

Enabling module proxy_http.

To activate the new configuration, you need to run:

systemctl restart apache2

ekzorchik@srv-bionic:~$ sudo nano /etc/apache2/sites-available/flood.conf

<VirtualHost *:80>

ServerAdmin webmaster@localhost

ServerName 172.33.33.14

ProxyRequests Off

<proxy>

Require all granted

</proxy>

ProxyPass / http://localhost:3000/

ProxyPassReverse / http://localhost:3000/

ErrorLog ${APACHE_LOG_DIR}/flood_error.log

CustomLog ${APACHE_LOG_DIR}/flood_access.log combined

</VirtualHost>

ekzorchik@srv-bionic:~$ sudo apache2ctl configtest

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Syntax OK

ekzorchik@srv-bionic:~$ echo "ServerName localhost" | sudo tee -a /etc/apache2/apache2.conf

ServerName localhost

ekzorchik@srv-bionic:~$ sudo a2ensite flood

Enabling site flood.

To activate the new configuration, you need to run:

systemctl reload apache2

ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-available/000-default.conf 
ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf     
ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

ekzorchik@srv-bionic:~$ sudo systemctl reload apache2

Открываю URL ссылку http://IP&DNS:80/, создаю Административную учетную запись:

  • Username: ekzorchik
  • Password: 712mbbddr@
  • rTorrent Connection Type: TCP
  • rTorrent Host: 127.0.0.1
  • rTorrent Port: 5000

и нажимаю кнопку «Create Account»

Регистрируюсь и создаю аккаунт во фронтенде rTorrent + Web

и вот более удобная Web-среда по управлению Вашими Torrent файлами

Сам Web-интерфейс rTorrent на Ubuntu 18.04 Server

она отличается от той которую я ранее использовал, отзывчивостью интерфейса, быстротой, информативностью.

На заметку: Если Вы забыли логин и пароль на вход то можно удалить файл базы где они добавлены и обратиться через URL адрес снова и создать привилегированного пользователя:

ekzorchik@srv-bionic:~$ sudo rm /srv/torrent/flood/server/db/users.db

ekzorchik@srv-bionic:~$ sudo systemctl restart apache2

ekzorchik@srv-bionic:~$ sudo systemctl restart flood

ekzorchik@srv-bionic:~$ sudo systemctl restart rtorrent

Чтобы добавить Torrent

В правом углу нажимаем иконку «Плюс/+» (Add Torrent) , либо вставляем URL адрес «By URL», либо переходим на «By File» и перетаскиваем torrent файл к примеру с основной системы в соответствующее поле и нажимаем «Add Torrent»

Процесс добавления torrent файла с основной системы

А вот когда Torrent файл запустится, можно будет видеть какова его скорость скачивания и раздачи, график нагруженности, оставшееся время завершения, размер и т.д.

Скачивание Torrent идет, файл сохраняется по адресу указанному в настройкахЕсли на Torrent файле через правый клик мышью на нем выбрать «Torrent Details» либо двойной щелчок мышью левой кнопкой мыши, то информация уже будет более структурированной чем если смотреть выше в главном меню, но одинаковой. Здесь меняется приоритет загрузки, запуск и остановка, какие вложенные файлы из торрента загружать, а какие нет. Чтобы выйти из свойств Torrent следует нажать клавишу «Esc»

Структурированная информация по Torrent файлу

 

Когда Torrent-файл скачался, чтобы перенести его на основную систему нужно — выделить Torrent и через правый клик мышью нажать Download и на Вашу систему итоговые файлы будут скачаны, вот к примеру мне нужно было руководство: «Автомобили: Конструкция, конструирование и расчет. Трансмиссия», по итогу я получил PDF документ: «Гришкевич А.И. (ред.) – Автомобили. Конструкция, конструирование и расчет. Трансмиссия — 1985.pdf»

Итого я получил удобный инструмент который могу смело перенести на собственный сервис домашнего сервера HP MicroServer Gen8. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru