Installation d'une "seedbox" rTorrent minimaliste

image d'agrément

Vous venez de louer les services d'un hébergeur pour un petit serveur VPS bon marché et souhaitez mettre en place une "seedbox", un espace dédié au téléchargement via bittorrent. Beaucoup s'orientent vers le client/serveur de torrents "Deluge" mais nous non! Nous on aime la contradiction et la ligne de commande alors on va se contenter des outils habituels disponibles sur nos distributions préférées: Screen, rTorrent et openssh-sftp-server.

Toute cette histoire va se passer sur une distribution Debian 11 "Bullseye"

Bref assez parlé, connectez vous sur votre nouveau serveur avec les codes fournis par votre hébergeur et entrons dans le vif du sujet.

Nouvelle maison, nouvel utilisateur

On crée un utilisateur "toto", on lui donne un mot de passe et on passe à la suite.

root@debian:~# adduser toto
Adding user `toto' ...
Adding new group `toto' (1000) ...
Adding new user `toto' (1000) with group `toto' ...
Creating home directory `/home/toto' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for toto
Enter the new value, or press ENTER for the default
    Full Name []: 
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] y

Le serveur VPS sur lequel je travail dispose nativement de la suite d'outils "openssh-server" incluant le protocole SFTP "openssh-sftp-server" je ne vais donc pas m'ennuyer à installer autre chose pour mes transferts de données.

Vous pouvez vérifiez si un outils de transfert de données est installer sur votre machine avec la commande suivante:

$ dpkg -l | grep ftp

Si la réponse ressemble à ça ...

ii  openssh-sftp-server            1:9.2p1-2+deb12u1              amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines

... alors c'est super vous pouvez vous connecter sur votre serveur avec le couple login/mot de passe créé plus haut. Si vous ne disposez pas de openssh-sftp-server vous devrez l'installer # atp install openssh-server, lui ou un serveur FTP.

Installation de Screen et rTorrent

Le programme rTorrent n'est pas conçu pour fonctionner en tache de fond et va donc se fermer si vous quittez la console, on va remédier à ça grâce au programme Screen.

root@debian:~# apt install screen
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
screen is already the newest version (4.8.0-6).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Ici Screen est déjà installé mais c'est peut-être du à mon hébergeur. Peu importe, l'installation de Screen n'a rien de particulier à signaler.

Passons à l'installation du client bittorrent rTorrent:

root@debian:~# apt install rtorrent
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package rtorrent

J'ai eu un peu peur en voyant ceci mais pas de panique, mon serveur est tout neuf, mettre à jour la base de données des dépôts résout le problème.

root@debian:~# apt update
...
root@debian:~# apt upgrade
....
root@debian:~# apt install rtorrent

Configuration de rTorrent

pour cette étape il est inutile de rester "root" on bascule donc vers l'utilisateur "toto".

root@debian:~# su toto

Plaçons nous dans notre répertoire personnel ...

toto@debian:/root$ cd ~

... et créons quelques répertoires nécessaires à la configuration.

toto@debian:~$ mkdir downloads session torrents_files

Allons chercher le fichier de configuration pour le copier à la racine du répertoire personnel de "toto". Il s'agit d'un fichier .gz qui contient un fichier rtorrent.rc, nous allons extraire ce dernier puis le renommer en fichier caché .rtorrent.rc puisque c'est ainsi qu'il doit être.

toto@debian:~$ cp /usr/share/doc/rtorrent/examples/rtorrent.rc.gz ~
toto@debian:~$ gunzip rtorrent.rc.gz
toto@debian:~$ mv rtorrent.rc .rtorrent.rc

Aucune des options de ce fichier n'est activée par défaut, nous allons simplement en activer quelques unes. Le fichier est suffisamment bien commenté pour que je m'épargne d'éprouvantes explications.

On retrouve ici les chemins, relatifs à l'utilisateur, des différents répertoires que nous venons de créer.

# Default directory to save the downloaded torrents.
#
directory.default.set = ~/downloads

# Default session directory. Make sure you don't run multiple instance
# of rTorrent using the same session directory. Perhaps using a
# relative path?
#
session.path.set = ~/session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#
schedule2 = watch_directory,5,5,load.start=~/torrents_files/*.torrent

J'attire votre attention sur les différents ports que vous devez impérativement ouvrir sur votre serveur, soit par le biais de votre hébergeur soit par iptables ou nftables.

# Port range to use for listening.
#
network.port_range.set = 6890-6900

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht.mode.set = auto

# UDP port to use for DHT.
#
dht.port.set = 6881

# Enable peer exchange (for torrents not marked private).
#
protocol.pex.set = yes

Pour ma part j'ai ouvert le port 6881 en TCP et UDP et les ports 6890 à 6900 en TCP.

Faire fonctionner rTorrent avec screen

De deux choses l'une, soit vous utilisez rTorrent de manière ponctuelle et dans ce cas vous pouvez ignorer l'utilisation de Screen, soit vous souhaitez laisser fonctionner votre seedbox et dans ce cas l'utilisation de Screen est indispensable. Je ne vais pas aller dans le détail de son utilisation, mais jetez un œil ici vous y trouverez l'essentiel des commandes Screen.

On commence donc par démarrer Screen.

toto@debian:~$ screen

Un message vous invite à appuyer sur la touche espace pour vous retrouver devant ... une console vierge. Ne vous y trompez pas, vous êtes dans une fenêtre Screen. Vous pouvez démarrer rTorrent.

toto@debian:~$ rtorrent

Pour détacher rTorrent et revenir à la console initiale utilisez la combinaison de touches [CTRL+a] puis [d].

[detached from 25713.pts-0.debian]
toto@debian:~$ 

À ce stade vous pourriez quitter la console du serveur VPS, le programme rTorrent serait toujours en activité sur ce dernier.

Pour revenir sur la fenêtre où s’exécute rTorrent on relance Screen avec l'option -r.

toto@debian:~$ screen -r

Et nous revoilà devant l'interface de rTorrent que nous allons enfin pouvoir utiliser.

Utilisation de rTorrent

chenapan On ne va pas se mentir, si vous avez pris le temps de configurer une "seedbox" ce n'est pas pour télécharger l'ensemble des distributions Ubuntu depuis son origine. Non! Vous ce que vous voulez c'est télécharger tous les films de vacances de tonton Norbert et tata Gisèle que Kevin pirate pour les mettent à disposition des autres membres de la famille. On va donc aller chercher sur le site de Kevin des fichiers .torrents et autres liens magnets.

Il existe deux méthodes pour ajouter des fichiers en téléchargement sur rTorrent.

Maintenant que nous avons un torrent en téléchargement voyons ce que signifie ce que nous avons sous les yeux.

La vue principale au lancement de rTorrent est la vue "main", la vue principale, c'est celle qui affiche l'ensembles des opérations en cours. Il existe une dizaine de vues différentes accessibles depuis les touches numérotées de 0 à 9.

La première ligne juste après l'entête indique le nom de la vue actuelle ([View: main]) et à droite le numéro du fichier sélectionne et le nombre de fichier total ([ 1 of 1 ]).

[View: main]                                                              [    1 of 1    ]

Ensuite s'affichent les documents en cours, chacun occupe 3 lignes. Des astérisques s'affichent à coté de chaque ligne d'un fichier sélectionné.

*   Tonton_Norbert_vacances-Ploumanac.h-2022.FRENCH.WEBRip.XviD_By_Kevin.avi
*                397.5 /    698.2 MB Rate:   33.2 /   103.1 KB Uploaded:     54.9 MB [ 57%] 0d 1:20 [   R: 0.08]
*

Enfin et pour terminer voici quelques commandes à connaitre.

28-Nov-2023
^