Je fais les choses à l’envers, présentant une configuration précise de Transmission (Exécuter Transmission avec l’utilisateur de son choix et déplacer son fichier de configuration vers $HOME) avant son installation et sa configuration générique, mais bon…

Le but est ici d’installer le client torrent Transmission et de le paramétrer sur une machine headless (pas d’interface graphique, pas d’écran, accessible par SSH) comme le Dockstar

 

Installation

Pour installer Transmission, simple comme d’habitude :

sudo aptitude install transmission-daemon transmission-cli

Le paquet transmission-daemon installe le démon (service) comme son nom l’indique et met à disposition l’interface Web, transmission-cli n’est à proprement parler pas nécessaire pour le fonctionnement de transmission, il met à disposition l’utilitaire transmission-remote très pratique pour interagir avec Transmission par script (pratique pour automatiser certaines taches que je décrirais dans une autre article)

 

Paramétrage

Tout d’abord avant d’attaquer la configuration proprement dite de Transmission, on va créer les répertoires destinés à accueillir et classer les fichiers.

Chez tout est rangé dans un répertoire /data/downloads/torrents, ce dernier contient 4 sous-répertoires :

  • watch : répertoire surveillé par Transmission, tout fichier .torrent placé ici sera automatiquement ajouté à Transmission et le téléchargement débutera
  • downloading : répertoire contenant les fichiers en cours de téléchargement (fichiers renommés avec l’extension .part car incomplets)
  • seeding : les fichiers une fois finis de téléchargés seront déplacés ici et y resteront tout le temps qu’il seront en partage (jusqu’a ce que le ratio soit atteint)
  • complete : les fichiers téléchargés ayant atteint le ratio de partage seront déplacés ici (pas réalisé par Transmission mais par script, objet d’un autre article)

 

Le paramétrage du démon Transmission se fait dans un fichier settings.json.

Par défaut sous Debian, Transmission est lancé avec un utilisateur debian-transmission mais il est peut être intéressant de changer cet utilisateur par son propre utilisateur et de déplacer le fichier de configuration de /etc/transmission-daemon vers le répertoire $HOME de cet utilisateur, pour cela se reporter à Exécuter Transmission avec l’utilisateur de son choix et déplacer son fichier de configuration vers $HOME

Avant d’éditer le fichier de configuration il est important d’arrêter le démon, ce dernier écrivant sa configuration à son arrêt vous risqueriez de perdre votre paramétrage.

Éditez votre fichier de configuration /etc/transmission-daemon/settings.json ou $HOME/.config/transmission-daemon/settings.json ce dernier au format JSON contient un ensemble de pair clé/valeur :

{
 "alt-speed-down": 50,
 "alt-speed-enabled": false,
 "alt-speed-time-begin": 540,
 ...
 "upload-limit-enabled": 0,
 "upload-slots-per-torrent": 4
}

La description des ces paramètres est disponible sur le Wiki de Transmission (EditConfigFiles – Transmission), mais voici ma traduction de ceux que j’utilise classés par catégories :

Répertoires :

Conformément à la structure de répertoire décrite ci-dessus on réalise le paramétrage suivant.

  • incomplete-dir : « /data/downloads/torrents/downloading »
  • incomplete-dir-enabled : true
  • download-dir : « /data/downloads/torrents/seeding »
  • watch-dir : « /data/downloads/torrents/watch »
  • watch-dir-enabled : true

incomplete-dir indique le répertoire où sont stockés les fichiers en cours de téléchargement et incomplete-dir-enabled active cette fonctionnalité (sinon ces fichiers sont stockés dans le répertoire download-dir)

download-dir contient le répertoire où sont stockés les fichiers en cours de partage et terminés (nous verrons dans un autre article comment déplacer les fichier terminés vers un autre répertoire)

watch-dir contient le répertoire scruté pour ajout automatique de téléchargement par dépôt de fichier .torrent (fonctionnalité activé par watch-dir-enabled)

Quelques paramétrages associés :

  • start-added-torrents : true
  • trash-original-torrent-files : true
  • rename-partial-files : true

start-added-torrents, indique qu’il faut directement démarrer le téléchargement de torrents ajoutés.

trash-original-torrent-files supprime les fichiers .torrent du répertoire watch-dir après qu’ils aient été pris en compte

rename-partial-files indique que les fichiers encours de téléchargement doivent avoir une extension .part. Pas utile dans mon cas puisque ces derniers sont déjà dans une répertoire à part, mais cela ne fait pas de mal.

Réseau :

  • peer-port : xxx
  • peer-port-random-high : 65535
  • peer-port-random-low : 49152
  • peer-port-random-on-start : false

peer-port contient le port d’écoute de Transmission, il faut que ce port soit ouvert sur votre routeur, peer-port-random-on-start indique que Transmission ne choisi aps son port de façon aléatoire et écoute donc toujours sur le port peer-port. Dès lors les paramètres peer-port-random-high et peer-port-random-low sont inutiles

Partage :

  • ratio-limit : 1.0000
  • ratio-limit-enabled : true

Transmission partage le fichiers jusqu’à ce que le ratio (quantité téléchargée / quantité partagée) paramétré dans ratio-limit soit atteint (ratio-limit-enabled : activation de la fonctionnalité)

Si on laisse ratio-limit-enabled: false, Transmission ignorera le paramètre ratio-limit et partagera le fichier infiniment (enfin jusqu’à ce que vous l’enleviez)

Un ratio de 1 est un minimum, car il indique que vous partagez autant que vous téléchargez

Accès distant :

  • rpc-authentication-required : true
  • rpc-bind-address : « 0.0.0.0″
  • rpc-enabled : true
  • rpc-password : « xxxx »
  • rpc-port : 9091
  • rpc-username : « xxxx »
  • rpc-whitelist : « 127.0.0.1″
  • rpc-whitelist-enabled : false

RPC veut dire Remote Procedure Call autrement dit cela permet l’accès à distance à un service. Dans le cas de Transmission cela paramétre l’accès au démon par l’interface Web (fournis par défaut avec le démon) mais aussi à tous les autres services distants (par exemple client lourd distant transmission-remote-gui)

On active le service avec rpc-enabled et on active la connexion par login / mot de passe (rpc-authentication-required / rpc-username / rpc-password)

Concernant rpc-password on met le mot de passe en clair et lors de la prise en compte du fichier de configuration par Transmission ce dernier crypte le mot de passe

rpc-port défini le port d’écoute, ainsi si on saisie dans la barre d’adresse de son navigateur l’adresse IP du serveur hébergeant Transmission sur la port 9091 on arrive sur l’interface Web.

Enfin il est possible de paramétrer une liste d’adresse IP autorisé à se connecter en RPC avec les options rpc-whitelist-enabled et rpc-whitelist. Je n’utilise pour l’instant pas cette option.

Vitesses :

Sur Transmission il est possible de gérer 2 modes de vitesse (normal et alternatif : alt)  et ce pour le téléchargement et l’upload.

La bascule entre ces 2 modes est aussi paramétrable selon les jours et les heures.

Concrètement on peut déterminer d’avoir ou pas de limite de vitesse en mode normal et d’autres limites de vitesse (ou pas) dans le mode alternatif.

Dans l’exemple suivant en mode normal il n’y aucune limite de vitesse ni en téléchargement speed-limit-down-enabled  (dès lors speed-limit-down est inutile) ni en upload speed-limit-up (speed-limit-up-enabled inutile).

Par contre on active le mode alternatif (alt-speed-enabled) et sa planification (alt-speed-time-enabled).

Entre 9h du matin (alt-speed-time-begin, 540 nombre minute depuis minuit = 9*60) et 23h (alt-speed-time-end, 1380 = 23*60 minutes) tous les jours de la semaine (cf. Scheduling) on limite le téléchargement (alt-speed-down) et l’upload (alt-speed-up)

Dès lors la bande passante est préservée durant les heures « d’éveil » rendant possible/agréable la navigation sur Internet tandis que durant la nuit Transmission télécharge à fond….

  • speed-limit-down : 100
  • speed-limit-down-enabled : false
  • speed-limit-up : 40
  • speed-limit-up-enabled : false
  • alt-speed-down : 50
  • alt-speed-enabled : true
  • alt-speed-time-begin : 540
  • alt-speed-time-day : 127
  • alt-speed-time-enabled : true
  • alt-speed-time-end : 1380
  • alt-speed-up : 50

On verra dans un prochain article comment rendre ce système de mode normal / alternatif encore plus performant en ne le planifiant pas mais en basculant entres les 2 modes selon le besoin…

Sécurité :

  • blocklist-enabled : true

Active le blocage des adresse IP, Transmission télécharge à intervalle régulier la liste des adresses IP de niveau 1 appartenant à des sociétés et des associations et les bloquent.

Inutile quand on a rien a se reprocher…

 

Autres paramétrages non utilisés :

  • bind-address-ipv4 : « 0.0.0.0″
  • bind-address-ipv6 : « :: »
  • dht-enabled : true
  • encryption : 1
  • lazy-bitfield-enabled : true
  • lpd-enabled : false
  • message-level : 2
  • open-file-limit : 32
  • peer-limit-global : 240
  • peer-limit-per-torrent : 60
  • peer-socket-tos : 0
  • pex-enabled : true
  • port-forwarding-enabled : false
  • preallocation : 1
  • proxy : «  »
  • proxy-auth-enabled : false
  • proxy-auth-password : «  »
  • proxy-auth-username : «  »
  • proxy-enabled : false
  • proxy-port : 80
  • proxy-type : 0
  • script-torrent-done-enabled : false
  • script-torrent-done-filename : «  »
  • upload-slots-per-torrent : 4
  • umask : 18 (en décimal = 22 en octal)

Il y a même des paramètres qui sont obsolètes car remplacés par d’autres

  • download-limit : 100
  • download-limit-enabled : 0
  • upload-limit : 100
  • upload-limit-enabled : 0
  • max-peers-global : 200

 

Sources :

Les commentaires sont fermés.