Update torrent article

master
Quentin Duchemin 2024-07-30 20:27:21 +02:00
parent c20ba1319e
commit 47ff0807de
1 changed files with 23 additions and 21 deletions

View File

@ -8,6 +8,10 @@ intro: Récemment, j'ai du transmettre à une personne une archive d'une centain
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.
---
**Mis à jour le 29 juillet 2024 avec des corrections adaptées pour un usage personnel.**
{{<warn>}}Dans ce qui suit, le fichier partagé n'est pas strictement privé (même s'il est hautement improbable que quelqu'un qui ne détient pas le fichier Torrent puisse l'obtenir) !{{</warn>}}
## 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.
@ -20,32 +24,14 @@ Pour ce faire, on installe deux paquets :
sudo apt install transmission-daemon transmission-cli
```
Puis on lance le daemon Transmission :
```bash
sudo systemctl start transmission-daemon
```
On peut vérifier sur quel port il écoute :
```bash
sudo ss --tcp -pn
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
Transmission a la fâcheuse habitude d'écraser sa configuration au redémarrage s'il n'est pas arrêté lors de la modification.
On commence donc par stopper le daemon :
Si jamais vous l'aviez lancé, il faut stopper le daemon :
```bash
sudo systemctl stop transmission-daemon
```
Pour nous faciliter la vie, on va changer un paramètre dans le fichier de configuration :
@ -63,6 +49,17 @@ On redémarre le daemon :
sudo systemctl start transmission-daemon
```
On peut vérifier sur quel port il écoute :
```bash
sudo ss --tcp -pl
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>}}
## Créer un torrent
Pour créer un torrent avec Transmission, on a besoin de deux choses :
@ -79,13 +76,18 @@ Il existe des trackers publics et privés. Les trackers publics sont maintenus p
{{<info>}}Sur [ce dépôt](https://github.com/ngosang/trackerslist), tu trouveras une liste très active des trackers publics fonctionnels.{{</info>}}
{{<warn>}}Edit 29/07/2024 : parfois il est difficile de trouver des trackers qui fonctionnent et ça peut prendre la tête longtemps... Une solution dans ce cas est de lancer [opentracker](https://erdgeist.org/arts/software/opentracker/) le temps du partage, en [whitelistant](https://blog.microjoe.org/2017/tracker-bittorrent-opentracker.html) le hash du torrent à partager pour éviter qu'il ne devienne un tracker public. L'URL `http://<IP>:6969/announce` sera celle à renseigner pour le tracker, tandis que la même URL avec `/stats` au lieu de `/announce` permettra de voir si le torrent est bien annoncé.{{</warn>}}
Allez, c'est parti ! Imaginons maintenant que tu aies un dossier `perfectly-legal` que tu souhaites seeder. Voici comment créer le fichier torrent :
```bash
# Rajouter plusieurs trackers en répétant l'option -t ; j'en mets 4 ou 5.
transmission-create perfectly-legal -t <tracker_1> [-t <tracker_2> ...] -o perfectly-legal.torrent
# Il semblerait que Transmission ne s'annonce qu'au premier tracker, ce qui semble
# limiter l'intérêt de fournir plusieurs trackers...
transmission-create perfectly-legal -p -t <tracker_1> [-t <tracker_2> ...] -o perfectly-legal.torrent
```
{{<info>}}L'option `-p` demande au client de ne pas fuiter nos fichiers torrent en cherchant des pairs autrement qu'en passant par le tracker.{{</info>}}
{{<warn>}}Plus le dossier est gros, plus la création du torrent est longue ; plusieurs minutes pour 100Go.{{</warn>}}
Le torrent ne contient finalement pas grand chose : entre autres, le nom du dossier, la liste des trackers et le hash du torrent, indispensable pour l'identifier sur les trackers. Ce hash dépend bien sûr du dossier et de son contenu.