Разбираю как поставить и начать использовать 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: ekzorchikPassword: 712mbbddr@rTorrent Connection Type: TCPrTorrent Host: 127.0.0.1rTorrent 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.



