Torrent v3

master
Quentin Duchemin 2024-03-29 01:51:47 +01:00
parent 06ea9e242e
commit ef4e8f855b
2 changed files with 12 additions and 10 deletions

View File

@ -4,11 +4,11 @@ date: 2024-03-28
categories:
- Geekeries
summary: "J'ai passé une bonne heure à trouver comment faire, avec étonnamment peu de documentation explicite. Je vous livre les quelques commandes magiques 🎉."
intro: Récemment, j'ai du transmettre à une personne une archive d'une centaine de Go, dont le téléchargement derrière un `nginx` finissait toujours par échouer. J'ai alors décidé de créer un torrent et de le seeder depuis mon serveur, et j'ai été étonné du peu de documentation clé en main sur le sujet. Voilà ma petite contribution ; je suis preneur·se si vous trouvez quelque chose d'autre 😉.
intro: Récemment, j'ai du transmettre à une personne une archive d'une centaine de Go, dont le téléchargement derrière un `nginx` finissait toujours par échouer. J'ai alors décidé de créer un torrent et de le partager depuis mon serveur, et j'ai été étonné du peu de documentation clé en main sur le sujet. Voilà ma petite contribution ; je suis preneur·se si vous trouvez quelque chose d'autre 😉.
imgExplanation: En image d'illustration, un extrait de la délicieuse [pub anti-piratage](https://en.wikipedia.org/wiki/You_Wouldn%27t_Steal_a_Car) maintes fois détournée.
---
# Prérequis
## Prérequis
On va utiliser [Transmission](https://wiki.archlinux.org/title/Transmission), un client [BitTorrent](https://fr.wikipedia.org/wiki/BitTorrent) libre très utilisé, qui a l'avantage de proposer une CLI simple d'utilisation et de pouvoir gérer la création de torrents.
@ -28,14 +28,14 @@ On peut vérifier sur quel port il écoute :
```bash
sudo ss --tcp -pn
ESTAB [...] 54.38.93.217:51413 [...] users:(("transmission-da",pid=3840919,fd=24))
ESTAB [...] REDACTED_IP:51413 [...] users:(("transmission-da",pid=3840919,fd=24))
```
Le port `51413` est le port TCP par défaut de Transmission. Il existe plusieurs mécanismes pour échanger des fichiers via BitTorrent, et ici on utilisera le plus simple : Transmission annoncera qu'on peut contacter notre serveur sur ce port.
{{<warn>}}Si vous avez un pare-feu restrictif, c'est le moment d'ouvrir le port `51413`.{{</warn>}}
# Configurer Transmission
## Configurer Transmission
Transmission a la fâcheuse habitude d'écraser sa configuration au redémarrage s'il n'est pas arrêté lors de la modification.
@ -61,13 +61,15 @@ On redémarre le daemon :
sudo systemctl start transmission-daemon
```
# Créer un torrent
## Créer un torrent
Pour créer un torrent avec Transmission, on a besoin de deux choses :
- Un répertoire ou un fichier à seeder ;
- Un répertoire ou un fichier à partager ;
- Une liste de [**trackers**](https://fr.wikipedia.org/wiki/Tracker_BitTorrent).
Les « trackers » sont des genre d'annuaires où s'enregistrent les pairs possédant tout ou partie des fichiers d'un torrent. Les pairs souhaitant leecher interrogent le tracker et récupèrent la liste. Une fois cette liste récupérée, la transmission se fait en pair-à-pair.
Les « trackers » sont des genre d'annuaires où s'enregistrent les pairs possédant tout ou partie des fichiers d'un torrent. Ces pairs sont appelés **seeders**, ils partagent. Les autres, qui veulent récupérer des fichiers, sont des **leechers**. Grâce aux trackers, les leechers récupèrent la liste des seeders 🌱. On peut être les deux à la fois d'ailleurs : récupérer un morceau de fichier tout en en partageant un autre.
Une fois cette liste récupérée, la transmission se fait en pair-à-pair ↔️.
{{<info>}}Pour les plus curieux·se d'entre vous, il existe aussi une méthode entièrement décentralisée qui repose sur les [tables de hachage distribuée](https://igm.univ-mlv.fr/~dr/XPOSE2013/bittorrent/ext.html).{{</info>}}
@ -88,7 +90,7 @@ Le torrent ne contient finalement pas grand chose : entre autres, le nom du doss
{{<info>}}Utilise la commande `transmission-show perfectly-legal.torrent` pour l'inspecter.{{</info>}}
# Seeder le torrent
## Seeder le torrent
Avant de se mettre à seeder, il faut copier notre dossier `perfectly-legal` dans le dossier de téléchargement de Transmission, sinon le daemon ne se rendra pas compte qu'il peut seeder !
@ -133,7 +135,7 @@ transmission-remote -l
Tu vois maintenant que le ratio est à `1.0`, c'est-à-dire que tu as seedé l'intégralité du dossier ! 🥳
{{</info>}}
# Conclusion
## Conclusion
Ce billet montre juste comment partager un torrent. Le cas d'usage classique est un fichier très lourd à partager.

View File

@ -43,7 +43,7 @@ p:not(.title, .subtitle, figcaption p) {
/* Used only in page header, add transparency */
.box {
background: rgba(0, 0, 0, 0.3);
background: rgba(0, 0, 0, 0.7);
}
/* Used to disable click on incoming posts in thematic series */