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.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
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 :
- 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
- Créez les dossiers manquants dans votre HOME :
mkdir -p ~/.local/share/applications
- Copiez le fichier icône de Transmission dans ce nouveau dossier :
cp /usr/share/applications/transmission-gtk.desktop ~/.local/share/applications/
- 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
- 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
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/
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 :
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key
Les explications :
- -x509 -nodes est le type de certificat voulu4).
- -days 365 est la durée de validité (en jours) de notre certificat.
- -newkey rsa:2048 génère une clé RSA de 2048 bits.
- -out /etc/apache2/server.crt est le chemin absolu de notre certificat.
- -keyout /etc/apache2/server.key est le chemin absolu de notre clé privée.
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 .
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 .
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 .
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:
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 .
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 .
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 là
Pour connaître les différentes options, tapez :
transmission-remote --help
- Pour avoir le listing des torrents, tapez :
transmission-remote -l
- Pour avoir les infos d'un torrent plus les peers connectés, tapez :
transmission-remote -t (ID) -i -pi
"-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 clear && transmission-remote -l read -p N° choi if [[ "$choi" = "" ]] then # retour en debut de boucle continue else # affichage des infos et peers transmission-remote -t $choi -i -pi | less ## tapez "q" pour sortir de la commande "less" fi done
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.
- Pour supprimer un ou plusieurs torrent, tapez :
transmission-remote -t (ID) -r
- Pour stopper un ou plusieurs torrent, tapez :
transmission-remote -t (ID) -S
- Pour relancer un ou plusieurs torrent, tapez :
transmission-remote -t (ID) -s
- Pour ajouter un fichier torrent, tapez :
transmission-remote -a /le/chemin/fichier.torrent
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.
- Recharger la liste des paquets avec la commande suivante :
sudo apt update
- Installation du package transmission-remote-gtk :
sudo apt install transmission-remote-gtk
Transmission Remote GUI
Le projet se trouve ici.
Il existe un logiciel qui permet de contrôler transmission-daemon, il se nomme Transmission Remote GUI, pour l'installer il suffit de récupérer le .zip, l'extraire sur votre bureau (par exemple), et lancer le binaire.
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
Maintenant on va extraire l'archive :
unzip transgui-5.0.1-x86_64-linux.zip
Il ne reste plus qu'à lancer l’exécutable transgui qui ressemble à ceci :
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.
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).