Créer une seedbox facilement avec aria2 et BitTorrent

ISO Bucket
Créer une seedbox facilement avec aria2 et BitTorrent
Crédits : Alexei Tacu/iStock/ThinkStock

Lorsque l'on parle de réseaux pair-à-pair (P2P) on oublie souvent qu'ils ne fonctionnent correctement que si chacun y partage des données, comme des fichiers que vous jugez importants. Voici comment faire avec un petit serveur et aria2.

BitTorrent est un protocole de partage de fichiers pair-à-pair souvent associé au piratage, mais il est en réalité très utilisé pour d'autres besoins. Il l'a été chez Facebook pour distribuer des données en interne, des éditeurs de jeux y ont recours pour diffuser ces derniers ou leurs patchs, il est aussi à l'origine de services comme PeerTube ou Resilio, permet la mise à disposition rapide d'images ISO de distributions Linux.

On peut ainsi vouloir l'utiliser pour participer au réseau d'une manière ou d'une autre. Comme nous l'avions évoqué dans un précédent article, il est désormais assez simple de télécharger ou de distribuer un fichier via BitTorrent à travers les liens Magnet grâce à l'introduction de solutions comme la DHT (Distributed Hash Table).

On peut le faire grâce à l'un des nombreux clients existants, qu'il s'agisse des officiels BitTorrent Classic/Web et µTorrent au modèle payant, d'outils open source comme Deluge et qBittorrent ou d'autres très légers tels que PicoTorrent. Certains préfèreront passer par un serveur et la ligne de commandes. 

C'est là qu'aria2 entre en scène. Voici comment l'utiliser pour télécharger et diffuser de nombreux fichiers.

aria2, couteau suisse du téléchargement

Ceux qui nous suivent connaissent déjà cet outil que nous avions présenté lorsque nous avions parlé de l'infructueuse aventure Metalink ou de téléchargement avec vérification d'empreinte (hash).

Il s'agit d'une application open source, multiplateformes, légère et très complète qui n'a qu'un objectif : vous permettre de tout faire ou presque en matière de téléchargement via différents protocoles. Elle est distribuée sous la forme d'un exécutable ou via différents gestionnaires de paquets sous Linux et Windows.

Sa documentation, très complète, détaille ses nombreuses fonctionnalités et options. Mais le téléchargement via un fichier torrent ou un lien Magnet est assez simple. Par exemple pour télécharger l'image ISO d'Ubuntu 21.04 :

aria2c https://releases.ubuntu.com/21.04/ubuntu-21.04-desktop-amd64.iso.torrent

Ou l'image ISO de Proxmox 7.0 via son empreinte (infohash) sous la forme d'un lien Magnet :

aria2c magnet:?xt=urn:btih:9fc36225478b9e1f6b4e67cab54a6b14cf084dc1&dn=proxmox-ve_7.0-1.iso

Vous pouvez agrémenter cette commande de différentes options : 

--bt-enable-lpd true // active la découverte de pairs locaux
--bt-force-encryption true // force l'utilisation du chiffrement arc4
--bt-require-crypto true // refuse d'établir des connexions via d'anciens protocoles
--seed-ratio=0.0 // Fixe le ratio de partage, 0.0 = illimité

Si cela ne fonctionne pas, pensez à vérifier que l'uPnP est activé sur votre routeur ou que les ports indiqués par aria2, qui servent  à la DHT et au transfert de données sont redirigés vers votre machine.

Création d'une seedbox

On peut donc utiliser aria2 pour télécharger puis distribuer des fichiers, et donc créer une seedbox minimale. Un terme là aussi sulfureux, mais qui désigne simplement une machine constamment en ligne, partageant des fichiers.

Pour tenter l'expérience, nous avons monté un serveur via une machine virtuelle sous Debian 11 via Proxmox VE 7.0. Nous y accédons via un terminal (SSH), comme on le ferait pour une instance cloud. 

ssh utilisateur@ip_du_serveur

On le met à jour et on installe aria2 ainsi que nload qui nous permettra de suivre la bande passante utilisée :

sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove
sudo apt install aria2 nload

On crée deux dossiers, l'un pour les fichiers .torrent, l'autre pour les images ISO :

mkdir ISO Torrents

On créé une liste de fichiers .torrent d'images que l'on souhaite télécharger :

nano torrentsList

On y ajoute le contenu suivant puis on quitte en enregistrant le fichier (CTRL+X) :

https://releases.ubuntu.com/21.04/ubuntu-21.04-desktop-amd64.iso.torrent
https://releases.ubuntu.com/21.04/ubuntu-21.04-live-server-amd64.iso.torrent
https://releases.ubuntu.com/20.04/ubuntu-20.04.2.0-desktop-amd64.iso.torrent
https://releases.ubuntu.com/20.04/ubuntu-20.04.2-live-server-amd64.iso.torrent
https://cdimage.debian.org/debian-cd/current/amd64/bt-cd/debian-11.0.0-amd64-netinst.iso.torrent
https://cdimage.debian.org/debian-cd/current/amd64/bt-dvd/debian-11.0.0-amd64-DVD-1.iso.torrent
https://torrent.fedoraproject.org/torrents/Fedora-Workstation-Live-x86_64-34.torrent
https://torrent.fedoraproject.org/torrents/Fedora-Server-dvd-x86_64-34.torrent
https://images.kali.org/kali-linux-2021.2-installer-amd64.iso.torrent
https://images.kali.org/kali-linux-2021.2-installer-netinst-amd64.iso.torrent
https://download.manjaro.org/xfce/21.1.0/manjaro-xfce-21.1.0-210817-linux513.iso.torrent
https://linuxmint.com/torrents/linuxmint-20.2-cinnamon-64bit.iso.torrent
https://linuxmint.com/torrents/linuxmint-20.2-mate-64bit.iso.torrent
https://linuxmint.com/torrents/linuxmint-20.2-xfce-64bit.iso.torrent

On télécharge ensuite ces fichiers dans le dossier Torrents et on supprime la liste :

wget -i torrentsList -P Torrents/
rm torrentsList

On peut alors lancer le téléchargement et le partage des images ISO :

ls $HOME/Torrents/*.torrent | aria2c -j20 --bt-seed-unverified=true --seed-ratio=0.0 --dir=$HOME/Downloads -i -

Cette commande pipe permet de faire la liste des fichiers .torrent puis demande à aria2 de les télécharger dans le dossier Downloads avec une limite de 20 fichiers en parallèle (5 par défaut) et les partage ensuite sans s'arrêter. Bien entendu, vous pouvez là aussi l'adapter selon vos besoins, pour limiter le débit en upload par exemple.

Pour suivre l'utilisation de la bande passante de la machine, on s'y connecte via un autre terminal et on tape :

nload

Les débits courants et moyens de vos différentes connexions (utilisez les flèches pour en changer) s'afficheront alors, avec un pseudo graphique lorsqu'une activité est détectée.

Et après ?

Vous pouvez décider de la lancer automatiquement au démarrage du système ou d'une session. Dès que le script sera lancé, il dressera la liste des torrents, téléchargera les fichiers correspondants puis les partagera.

N'hésitez donc pas à en ajouter/supprimer et à faire le ménage à la sortie de nouvelles versions des distributions Linux par exemple, ou lorsque vous jugez que le partage d'un fichier n'est plus nécessaire. Si vous voulez aller plus loin, vous pouvez également utiliser des clients tels que Deluge et son interface web par exemple.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !