Torrent v3
parent
06ea9e242e
commit
ef4e8f855b
|
@ -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.
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue