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 :
- Transmission : Site officiel
- Transmission : Liste de plugins sur le site officiel
- EditConfigFiles – Transmission : Description des option du fichier settings.json sur le site officiel
- Updated: Transmission Installation/Configuration on Ubuntu Server – 1000umbrellas.com : Exemple de configuration et manipulations à effectuer sur les répertoires accueillant les torrents si vous laissez Transmission tourner avec l’utilisateur debian-transmission
- devINSIDE :: Blog :: Installer et configurer le package transmission-daemon sous debian : configuration de base + interaction avec un Vhost apache (intérêt ?)
- Installation Transmission daemon sur Ubuntu Server « Realpeace’s Blog : installation et configuration + quelques clients Transmission
- HaHadopi » Transmission-daemon sur sa seedbox : installation et configuration
- Configurer Transmission pour l’access a distance (CLI) | Shtark.fr : installation et configuration