diff --git a/content/posts/torrent/index.md b/content/posts/torrent/index.md index 2f8ac7e..d85ae43 100644 --- a/content/posts/torrent/index.md +++ b/content/posts/torrent/index.md @@ -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.** + +{{}}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) !{{}} + ## 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. - -{{}}Si vous avez un pare-feu restrictif, c'est le moment d'ouvrir le port `51413`.{{}} - ## 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. + +{{}}Si vous avez un pare-feu restrictif, c'est le moment d'ouvrir le port `51413`.{{}} + ## 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 {{}}Sur [ce dépôt](https://github.com/ngosang/trackerslist), tu trouveras une liste très active des trackers publics fonctionnels.{{}} +{{}}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://: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é.{{}} + 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 [-t ...] -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 [-t ...] -o perfectly-legal.torrent ``` +{{}}L'option `-p` demande au client de ne pas fuiter nos fichiers torrent en cherchant des pairs autrement qu'en passant par le tracker.{{}} + {{}}Plus le dossier est gros, plus la création du torrent est longue ; plusieurs minutes pour 100Go.{{}} 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.