Разбираю как поставить и начать использовать 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»
и вот более удобная Web-среда по управлению Вашими Torrent файлами
она отличается от той которую я ранее использовал, отзывчивостью интерфейса, быстротой, информативностью.
На заметку: Если Вы забыли логин и пароль на вход то можно удалить файл базы где они добавлены и обратиться через 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 Details» либо двойной щелчок мышью левой кнопкой мыши, то информация уже будет более структурированной чем если смотреть выше в главном меню, но одинаковой. Здесь меняется приоритет загрузки, запуск и остановка, какие вложенные файлы из торрента загружать, а какие нет. Чтобы выйти из свойств Torrent следует нажать клавишу «Esc»
Когда Torrent-файл скачался, чтобы перенести его на основную систему нужно — выделить Torrent и через правый клик мышью нажать Download и на Вашу систему итоговые файлы будут скачаны, вот к примеру мне нужно было руководство: «Автомобили: Конструкция, конструирование и расчет. Трансмиссия», по итогу я получил PDF документ: «Гришкевич А.И. (ред.) — Автомобили. Конструкция, конструирование и расчет. Трансмиссия — 1985.pdf»
Итого я получил удобный инструмент который могу смело перенести на собственный сервис домашнего сервера HP MicroServer Gen8. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.



