Table des matières

, , , ,

Transmission

Transmission est le client BitTorrent installé par défaut sur Ubuntu. Il se veut intuitif, fonctionnel et très léger. Il dispose de fonctionnalités comme le chiffrement des échanges de données, l'échange de pairs, le support des blocklists, la limitation des débits en émission et en réception, etc. Il possède une interface graphique très épurée en GTK et d'une seconde en QT. Il est disponible sous licence GPLv2 ou X11.

L'interface de Transmission sous Ubuntu 15.10

Pré-requis

Installation

Transmission est le client BitTorrent par défaut d'Ubuntu. Si vous souhaitez l'utiliser sur d'autres variantes, il suffit d'installer le paquet transmission.

Configuration

Veillez à ce que le port TCP sélectionné dans Édition → Préférences → Réseaux soit ouvert (le port de base est le 51413). Vous pouvez vous servir de gufw pour configurer vos ports.

Intégration de Transmission au launcher Unity

Il est possible d'ajouter une fonctionnalité à Transmission afin d'afficher une petite barre de progression et le nombre de téléchargements en cours sur sa tuile du launcher Unity, comme sur l'image ci-dessous.

Pour obtenir ce résultat, voici comment procéder :

  1. Ouvrez un terminal et clonez le dépôt Git du projet avec la commande :
    git clone https://github.com/kriomant/transmission-unity-launcher.git
  2. Copiez le script Python cloné, dans le dossier /urs/local/bin, puis donnez-lui les droits d'exécution :
    sudo cp transmission-unity-launcher/transmission-unity-launcher.py /usr/local/bin/
    sudo chmod +x /usr/local/bin/transmission-unity-launcher.py
  3. Créez les dossiers manquants dans votre HOME :
    mkdir -p ~/.local/share/applications
  4. Copiez le fichier icône de Transmission dans ce nouveau dossier :
    cp /usr/share/applications/transmission-gtk.desktop ~/.local/share/applications/
  5. Modifiez le contenu de ce fichier pour qu'il exécute automatiquement le script Python précédemment installé :
    sed -i 's/^Exec=transmission-gtk/Exec=\/usr\/local\/bin\/transmission-unity-launcher.py transmission-gtk/' ~/.local/share/applications/transmission-gtk.desktop
  6. Donnez-lui les droits d'exécution :
    chmod +x ~/.local/share/applications/transmission-gtk.desktop

Il ne reste plus qu'à activer le plugin que vous venez d'installer. Pour cela, rendez-vous dans les préférences de Transmission (Édition → Préférences), onglet Accès à distance, et cochez la case Autoriser l'accès à distance.
Vérifiez que l'authentification est désactivée, et que l'adresse IP 127.0.0.1 est bien indiquée dans la zone Autoriser uniquement ces adresses IP : (la case correspondante doit être cochée) :

Utilisation

Transmission est une application complète comprenant service de téléchargement + interface de téléchargement + web UI depuis la version 1.30. Cela signifie que si vous installez aussi transmission-daemon, alors vous aurez 2 services de téléchargement et 2 web UI sur le même port ce qui cause des problèmes. Les deux applications ne se parlent pas ; donc, si vous ne comprenez pas un mot de ce charabia, installez uniquement Transmission.

transmission-gtk

Lancez l'application comme indiqué ici ou via le terminal (toutes versions ou variantes d'Ubuntu) avec la commande suivante :

transmission-gtk

Transmission-cli

Transmission-cli est une version ligne de commande. Pour l'utiliser, installez le paquet (si besoin) transmission-cli. Puis, tapez dans un terminal utilisez la commande :

transmission-cli /le/chemin/de/votre/fichier.torrent

Plusieurs options sont disponibles, afin de les connaître, tapez :

man transmission-cli

À noter que transmission-cli sauvegarde ses téléchargements dans le dossier où il a été lancé, par défaut votre Dossier personnel.

Transmission-create

Transmission-create est fourni avec transmission-cli et s'utilise en ligne de commande, il permet de créer un torrent.

Pour créer un torrent, tapez dans un terminal  :

transmission-create -o ~/le_torrent_cree.torrent -t http://le-tracker.fr/ -p -c "Mon commentaire" ~/Le_contenu_du_torrent

Voici les options que vous devez changer :

  -o "destination" — Mettez le fichier .torrent désiré
  -t "tracker" — L'adresse du tracker
  -p — Défini si le torrent est privé (enlever dans la majorité des cas)
  -c "commentaire" — Un commentaire associé (entièrement facultatif)

La destination peut-être un dossier ou un fichier, comme désiré.

Transmission-daemon

Transmission-daemon est un service en fond pour gérer les téléchargements. Installez le paquet transmission-daemon (si besoin), et pour le lancer, tapez dans un terminal (ou en appuyant sur les touches Alt+F2) :

transmission-daemon

Transmission-daemon permet aussi d'avoir une interface Web pour gérer ses téléchargements lorsque transmission-gtk n'est pas installé comme sur une machine sans serveur graphique. Notez que Transmission-daemon a sa propre instance indépendante de toute autre installation de Transmission.

Pour connaître les différentes options, tapez :

transmission-daemon --help

Pour lancer1) ou arrêter2) le daemon, tapez :

sudo systemctl start|stop transmission-daemon.service

Le fichier de conf se trouve dans « /var/lib/transmission-daemon/info/settings.json », ne pas oublier de couper le daemon pendant son édition si vous ne voulez pas que les modifications soient écrasées !

transmission-daemon et le fichier settings.json

Veuillez stopper votre transmission-daemon avant d'éditer votre settings.json, sinon au prochain redémarrage du daemon l'ancienne configuration sera restaurée ! ;-).

Si vous n'avez jamais lancé transmission-daemon, veuillez utiliser la commande suivante :

sudo systemctl start transmission-daemon.service

cette commande va permettre de lancer transmission-daemon et par ce fait, créer votre ~/.config/transmission-daemon/

Ici nous aborderons une configuration dite «minimale», car comme vous avez pu le constater le settings.json a énormément d'options, si vous voulez en savoir plus je vous invite sur EditConfigFiles.

Pour que transmission-daemon fonctionne correctement il vous faudra éditer votre fichier ~/.config/transmission-daemon/settings.json avec les options suivantes:

Les options3) Les explications
"rpc-username":
Le nom de l'utilisateur.
"rpc-password":
Le mot de passe.
"rpc-whitelist-enabled":
Active ou non la limitation d’accès aux IPS spécifiées dans rpc-whitelist.
"rpc-enabled":
Activer le Web-UI.
"rpc-authentication-required":
Activer l'authentification du Web-UI.
"download-dir":
Dossier où seront stockés les données téléchargées.
"rpc-whitelist":
Liste d’adresses IP autorisés à accéder à l’interface web, séparées par des virgules, le caractère * permet de définir une plage d’adresse (192.168.*.*).
"incomplete-dir":
Dossier où seront stockés temporairement les données en cours de téléchargement.
"dht-enabled":
Vous devez mettre cette valeur à false pour désactiver le DHT de votre daemon.
"pex-enabled":
Vous devez mettre cette valeur à false pour désactiver le PEX de votre daemon.

Quand toutes les options seront configurées, il vous restera plus qu'à faire :

sudo systemctl start transmission-daemon.service

Votre Seedbox sera alors accessible via:

http://votreip:9091/transmission/web/
Si votre Seedbox n'est pas accessible, ceci voudra sûrement dire que vous avez un firewall, il vous faudra donc ouvrir le port 9091/TCP en entrée, vous devez également ouvrir le port du peer-port en TCP/UDP.

Explication du fichier settings.json (avancé)

Les options Les explications
"blocklist-enabled": "true"
Activer la blocklist (optionnel).
"blocklist-url":
L'URL de la blocklist (si active).
"dht-enabled": "false"
Désactiver le DHT.
"download-dir:"
Le dossier de téléchargement.
"download-queue-enabled:"
Activer la file d'attente.
"download-queue-size:"
À modifier en fonction de votre ratio.
"idle-seeding-limit-enabled": "true/false"
Mettre en pause ou non, les torrents qui ne seed pas en continue.
"incomplete-dir":
Dossier des torrents incomplets.
"incomplete-dir-enabled": "true/false"
Activer ou désactive le dossier incomplet.
 "lpd-enabled": "true/false"
Active/désactive le LPD.
"peer-port": "51413"
Le port pour les échanges (à modifier à votre convenance et ne pas oublier de l'ouvrir dans le firewall).
"peer-port-random-on-start": "true/false"
Activer/désactiver le port aléatoire au démarrage.
"pex-enabled": "true/false"
Activer/désactiver le PEX.
"ratio-limit-enabled": "true/false"
Activer/désactiver la limite du ratio.
"rpc-authentication-required":"true/false"
Activer/désactiver l'authentification du Web-UI.
"rpc-bind-address": "0.0.0.0"
Adresse sur lesquels activer le Web-UI (0.0.0.0 pour toutes les adresses)
"rpc-enabled": "true/false"
Activer le Web-UI.
"rpc-password": "votre_mot_de_passe"
Le mot de passe (à votre guise, il sera chiffré au prochain redémarrage du service).
"rpc-port": "9091"
Le port pour accéder au Web-UI (à modifier à votre convenance et ne pas oublier de l'ouvrir dans le firewall).
"rpc-username": "beaver"
Votre identifiant (à votre guise).
"rpc-whitelist": "ip list"
Liste d’adresses IP autorisées à accéder à l’interface web, séparées par des virgules, le caractère "*" permet de définir une plage d’adresse (192.168.*.*).
"speed-limit-down": "6000"
Limite de débit en download (ici 6Mo/s, à adapter).
"speed-limit-down-enabled": "true/false"
Activer/désactiver la limite.
"speed-limit-up": "6000"
Limite de débit en upload (ici 6Mo/s, à adapter).
"speed-limit-up-enabled": "true/fase"
Activer/désactiver la limite.
"start-added-torrents": "true/false"
Démarrer ou non les torrents à l'ajout.

transmission-daemon et SSL via Apache

Pour utiliser SSL avec votre daemon, vous devez créer votre certificat SSL (auto signé dans cet exemple), et modifier 3/4 lignes de votre VirtualHost.

Générer mon certificat SSL via OpenSSL

Pour créer son certificat SSL auto signé nous allons utiliser l'outil OpenSSL, il est aussi possible d'installer le paquet ca-certificates en complément de OpenSSL, mais ça ne semble pas utile dans le cas d'un certificat auto-signé.

Trêve de blabla voici les instructions :-D :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key

Les explications :

Voici pour les explications de la commande, maintenant nous devons ajouter/modifier notre VirtualHost.

sudo nano /etc/apache2/sites-available/transmission.conf

Et on y insère ceci:

transmission.conf
<VirtualHost *:443>
ServerName votredomaine.org

    SSLEngine on
    SSLProxyEngine On
    SSLCertificateFile /etc/apache2/server.crt
    SSLCertificateKeyFile /etc/apache2/server.key
    
<IfModule mod_proxy.c>
  #turning ProxyRequests on and allowing proxying from all may allow
  #spammers to use your proxy to send email. 
  
  ProxyRequests Off
  
  <Proxy *>    
    AddDefaultCharset off
    Order Allow,Deny
    Allow from all
  </Proxy>

   ProxyPass /transmission http://localhost:votreportrpc/transmission
   ProxyPassReverse /transmission http://localhost:votreportrpc/transmission
  # Line below is optional
   Redirect permanent /transmission https://votrendd.tld/transmission/web/

</IfModule>
</VirtualHost>

Si la précédente configuration ne fonctionne pas pour vous, vous pouvez tester la suivante :

transmission.conf
SSLProxyEngine On

SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key

ProxyPass /transmission http://localhost:9091/transmission
ProxyPassReverse /transmission http://localhost:9091/transmission

Nous chargeons ensuite le module SSL de Apache, ainsi que les modules pour le Reverse Proxy :

sudo a2enmod ssl proxy proxy_http

On charge notre VirtualHost:

sudo a2ensite transmission

On relance Apache:

sudo systemctl restart apache2.service

On ouvre notre navigateur web et on y insère ceci:

https://votrendd.tld/transmission/web/

Magie, votre daemon transmission est accessible en HTTPS 8-).

Customiser transmission-daemon (Web-UI)

Web-UI Clutch

Une interface Web permet de contrôler Transmission. Depuis la version 1.30, elle est intégrée ainsi qu'un mini serveur web dans l'application transmission. Cela signifie qu'il vous suffit de l'activer dans les préférences et de vous rendre à l'adresse :

http://localhost:9091/transmission/web/

Kettu

Vous souhaitez personnaliser votre Web-UI de votre transmission-daemon ?, mais vous savez pas comment faire ?, vous allez voir c'est simple très simple à faire :-D.

git clone https://github.com/endor/kettu.git web

On se retrouve donc avec un dossier web, nous devons déplacer ce dossier dans /usr/local/share/transmission

Mais avant nous allons faire un backup du dossier web actuel pour se faire on ferra:

mkdir backupwebui && sudo mv /usr/local/share/transmission/web backupwebui/

Ensuite il suffit de déplacer notre dossier web qu'on a git:

sudo mv web/ /usr/local/share/transmission/

On recharge notre page de notre navigateur internet, et vous aurez quelque chose de semblable à ceci:

Transmission Web Control

Vous souhaitez customiser votre Web-UI de votre transmission-daemon ?, mais vous savez pas comment faire ?, vous allez voir c'est simple très simple à faire :-D.

On récupère la dernière version de Transmission Web Control:

wget https://github.com/ronggang/transmission-web-control/raw/master/release/transmission-control-full.tar.gz

On décompresse l'archive :

tar xvzf transmission-control-full.tar.gz

On se retrouve donc avec un dossier web, nous devons déplacer ce dossier dans:

/usr/share/transmission/

Mais avant nous allons faire un backup du dossier web actuel pour se faire on ferra:

mkdir backupwebui && sudo mv /usr/share/transmission/web backupwebui/

Ensuite il suffit de déplacer notre dossier web qu'on a wget:

sudo mv web/ /usr/share/transmission/

On refresh notre page de notre navigateur internet, et vous aurez quelque chose de semblable à ceci:

Si vous avez déjà accédé à l'interface web de base auparavant sur la même machine, pensez à nettoyer le cache de votre navigateur si l'ancienne interface s'affiche.

Shift

Vous souhaitez customiser votre Web-UI de votre transmission-daemon ?, mais vous savez pas comment faire ?, vous allez voir c'est simple très simple à faire :-D.

On récupère la dernière version de Transmission Web Control:

git clone https://github.com/killemov/Shift.git web

On se retrouve donc avec un dossier web, nous devons déplacer ce dossier dans:

/usr/local/share/transmission

Mais avant nous allons faire un backup du dossier web actuel pour se faire on ferra:

mkdir backupwebui && sudo mv /usr/local/share/transmission/web backupwebui/

Ensuite il suffit de déplacer notre dossier web qu'on a git:

sudo mv web/ /usr/local/share/transmission/

On refresh notre page de notre navigateur internet, et vous aurez quelque chose de semblable à ceci:

Owncloud Transmission Web-UI

Le projet se trouve ici.

Vous souhaitez customiser votre Web-UI de votre transmission-daemon ?, mais vous savez pas comment faire ?, vous allez voir c'est simple très simple à faire :-D.

On récupère la dernière version de Owncloud Transmission Web-UI :

http://mspot.tk/oc/index.php/s/QW9uDVVt1IToPEa/download5).

Ensuite nous installons le package p7zip:

sudo apt install p7zip

Ensuite nous décompressons le fichier OwnCloud_Trans_Web_UI_1.0.0.7z :

7z x OwnCloud_Trans_Web_UI_1.0.0.7z

On se retrouve donc avec un dossier web, nous devons déplacer ce dossier dans:

/usr/local/share/transmission

Mais avant nous allons faire un backup du dossier web actuel pour se faire on ferra:

mkdir backupwebui && sudo mv /usr/local/share/transmission/web backupwebui/

Ensuite il suffit de déplacer notre dossier web qu'on a téléchargé :

sudo mv web/ /usr/local/share/transmission/

On refresh notre page de notre navigateur internet, et vous aurez quelque chose de semblable à ceci:

Restaurer le Web-UI original de transmission-daemon

Nous supprimons le Web-UI customisé :

sudo rm -r /usr/local/share/transmission/web

Nous utilisons notre backup "web" pour restaurer le Web-UI orginal :

sudo mv backupwebui/web /usr/local/share/transmission/

transmission-remote

transmission-remote permet de gérer transmission-daemon. Vous pouvez voir un exemple de son utilisation

Pour connaître les différentes options, tapez :

transmission-remote --help
(ID) = numéro du torrent (1ere colonne du listing)

"-t (ID)" peut être écrit de plusieurs manière:

  • un seul torrent: -t 1
  • une liste: -t 1,3,5
  • une plage: -t 5-10

Le tout peut être mélangé exemple: -t 1,3,5-10.

Voici un petit script pour faciliter l'utilisation des deux dernières commandes :

#!/bin/bash
## "ctrl + c" pour quitter le script
while true ; do
        # affichage du listing
        transmission-remote -l
        read -rp "N°" choi
        clear
        if [[ -n "$choi" ]]
        then
                # affichage des infos et peers
                transmission-remote -t "$choi" -i -pi | less
                ## tapez "q" pour sortir de la commande "less"
        fi
done
Si vous obtenez une erreur "Unauthorized User", transmission est peut-être configuré pour demander un login. Il faudra, par exemple pour lister les torrent utiliser la syntaxe suivante :
transmission-remote -n nom:motdepasse -l

Où nom et username sont à mettre dans les variables rpc-username et rpc-password dans le settings.json de transmission ou transmission-daemon selon le cas.

transmission-remote-gtk

Il existe un logiciel qui permet de contrôler transmission-daemon, il se nomme Transmission Remote Gtk, pour l'installer nous utiliserons le PPA du projet.

Transmission Remote GUI

Il existe un logiciel qui permet de contrôler transmission-daemon, il se nomme Transmission Remote GUI.

Le projet sur LaunchPad se trouve ici.

Pour l'installer, installez le paquet transgui.

Aperçu de l'interface :

transmission-remote-gui.jpg


Méthode alternative d'utilisation sans installation : récupérer le .zip, l'extraire sur votre bureau (par exemple), et lancer le binaire.

Le projet sur SourceForge se trouve ici. Nous téléchargeons la dernière version en date :

wget http://downloads.sourceforge.net/project/transgui/5.0.1/transgui-5.0.1-x86_64-linux.zip

On extrait ensuite l'archive :

unzip transgui-5.0.1-x86_64-linux.zip

Il ne reste plus qu'à lancer l’exécutable transgui :

./transgui

Purge

Il est possible, si vous êtes un grand téléchargeur, que transmission stocke plusieurs Go de fichiers pour rien sur votre disque dur !. En effet, certains téléchargements se passent mal et des fichiers viennent encrasser le répertoire où sont stockés les téléchargements incomplets.

Il peut être intéressant de soulager votre disque dur en vidant ce dossier de temps en temps.

N'exécutez cette commande que si vous êtes certains de n'avoir aucun téléchargement en cours ! Sinon ils serons tous remis à zéro !

Commencez par aller dans le répertoire local de Transmission avant de purger le dossier des téléchargements incomplets :

cd $HOME/.config/transmission/
rm -r Incomplete/*

Désinstallation

Il suffit de supprimer le paquet transmission, transmission-cli ou transmission-gtk selon la version que vous avez installée. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.

Voir aussi


Contributeurs : Sallé, M4TR4X, zedtux, Mr_Djez, Heuzef, OpenSourceWay, BeAvEr (refonte de l'intégralité de la documentation).

1)
Option start.
2)
Option stop.
3)
Fichier ~/.config/transmission-daemon/settings.json
5)
Lien mort.