Разбираю как поставить и начать использовать 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.