Transmission : client torrent et contrôle à distrance
ajouté le Jeudi 12 juillet 2007 à 10:17:54 par christophe
Plan de l'article :
Transmission est un client BitTorrent puissant et très léger. Contrairement à certaines usines à gaz style Azureus, il nécessite très peu de ressources sans pour autant sacrifier les fonctionnalités : une interface graphique GTK optionnelle, un lancement en service, possibilité de contrôle à distance sécurisée, tout y est !
Imaginez :
- lancez le téléchargement de votre distribution favorite le matin (sur votre poste local).
- pendant votre pause ;) au boulot, vérifiez l'avancée et profitez en même pour ajouter la tribe 1 qui vient de sortir.
- rentrez le soir, tout est terminé...
Rappel : il est interdit d'utiliser ce logiciel à des fins illégales (piratage, contrefaçon ou toute autre activité étant considérée hors-la-loi par les lois en vigueur dans votre pays de résidence).
Présentation
Transmission dans sa dernière version (0.8) est en fait constitué de 3 paquets indépendants :
- transmission-gtk : le client bittorrent avec interface graphique en GTK pour Gnome. Son intérêt réside dans le fait que tout peut se faire uniquement avec la souris en local.
- transmissioncli : le client bittorrent en ligne de commande. Pour les habitués du terminal et les accros du scripting BASH.
- transmission-daemon : nettement plus intéressant, il tourne en tâche de fond.
Vous l'aurez peut-être compris, le grand intérêt vient de la version daemon. En utilisant SSH, on va pouvoir contrôler très facilement et à distance la gestion des torrents. La suite de cette article est réservée aux personnes ayant quelques connaissances de bases : le protocole bittorrent (en gros comment ça marche) et la configuration réseau (ouverture de ports).
Installation
Pour Ubuntu Feisty Fawn, il existe un paquet pour la version 0.8 qui est en cours de développement. Elle est néanmoins plutôt stable.
ajoutez le dépôt dans votre /etc/apt/source.list
# echo "deb http://acorbeaux.free.fr/ubuntu feisty main" >> /etc/apt/source.list
faîtes une mise à jour de la liste de paquet
# apt-get update
installez le paquet
# apt-get install transmission-daemon
Si vous préférez les 2 autres façons d'utiliser ce client bittorrent vous pouvez vous référer à cette excellente documentation.
Utilisation de transmission-daemon
1. Lancement
Chaque commande qui va suivre dans cette section va pouvoir se faire indépendamment soit en local (sur votre machine dans votre session) soit à distance (avec SSH). C'est ici sa grande force par rapport aux autres clients : vous n'être plus obligé de rester collé à votre bureau. Vous pouvez tout aussi bien recycler un vieux PIII (800Mhz - 512Mo - 60Go), y installer Ubuntu Server et l'enfermer dans un placard insonorisé avec pour seul lien vers le monde réel un RJ45 STP Cat 5e ;)
Donc depuis votre poste en local ou à distance en utilisant SSH, ouvrez un terminal et tapez :
$ transmission-daemon
Contrairement aux démons habituels dans /etc/init.d/ qui sont exécutés par root ou nobody, transmission-daemon est lancé par un utilisateur normal du système et tourne en tâche de fond.
A présent, tout est affaire de gestion : votre rôle sera cantonné à l'ajout de torrents, leur suppression et au contrôle de la bande passante. Nous allons dans cet exemple télécharger la tribe 1 toute fraîche de la prochaine version d'ubuntu j'ai nommé Gusty Gibbon.
2. Gestion
Connectez vous à distance sur votre machine avec SSH (l'utilisateur qui se connecte doit être le même qui a lancé le daemon). Pour cela, vous devez au préalable avoir le service sshd de lancé, connaître l'IP publique de votre machine et forwardé le bon port. Ceci fera l'objet d'un prochain article. Passez à l'étape suivant sinon suivez le guide.
Ouvez un terminal et tapez :
$ ssh christophe@serveur
Le mot de passe utilisateur vous est demandé. Renseignez-le. A partir de maintenant vous contrôlez la machine serveur à distance. On va récupérer le .torrent du fichier que l'on veut télécharger :
$ wget http://cdimage.ubuntu.com/releases/gutsy/tribe-1/gutsy-desktop-i386.iso.torrent
On l'ajoute à la liste des fichiers à télécharger par le daemon transmission grâce à la commande transmission-remote.
$ transmission-remote -a gutsy-desktop-i386.iso.torrent
Pour voir la liste des fichiers en téléchargement :
$ transmission-remote -l
gutsy-desktop-i386.iso (695 MiB) - 4.25% downloading at 177 KiB/s (UL at 2.30 KiB/s), done in 1 hour 4 minutes
Cette commande vous affiche les statistiques et vous redonne aussitôt la main. Pour avoir un rafraîchissement à intervalle régulier, on peut utiliser la commande système linux watch.
$ watch transmission-remote -l
Pour quitter les statistiques faîte CTRL + C.
Pour fonctionner, transmission et plus générallement le protocole bittorrent a besoin q'un port soit ouvert sur votre machine (configurez iptables ou tout autre firewall en conséquence). Supposons que j'ai fowardé le port 12345 sur ma machine (grâce à mon routeur, freebox...) et que je veuille le faire utiliser par transmission :
$ transmission-remote -p 12345
Cette étape est primordiale. Sans cet accès ouvert à votre machine il y a peu de chance que le client télécharge quoi que soit. Par défaut transmission utilise le port 9090. N'oubliez pas de la spécifiez à votre freebox, livebox, neufbox, alicebox et autre *box... :)
Il peut aussi être utile d'avoir la table des hash
$ transmission-remote -i
e51ab03417bb60c6e6324b20c3d2a99c54fe0785 gutsy-desktop-i386.iso
Ceci va nous permettre par exemple de retirer notre image iso de la liste des téléchargements en utilisant justement ce hash:
$ transmission-remote -r e51ab03417bb60c6e6324b20c3d2a99c54fe0785
Veuillez noter qu'en aucun cas le fichier .torrent et l'image téléchargée ne seront supprimés. C'est à vous de le faire par la suite. On peut aussi définir la bande passante allouée (upload/download).
Limiter les download à 200Ko/s
$ transmission-remote -d 200
Ne mettre aucune limite sur l'upload
$ transmission-remote -U
Transmission-remote comprend un certain nombre d'arguments qui ne peuvent pas être tous exposés ici. Leur utilisation est très explicite : pour en afficher la liste complète (l'aide ou Help) :
$ transmission-remote -h
usage: transmission-remote [options]
Transmission 0.80-svn (r1847) http://transmission.m0k.org/
A free, lightweight BitTorrent client with a simple, intuitive interface.
-a --add <torrent> Add a torrent
-d --download-limit <int> Max download rate in KiB/s
-D --download-unlimited No download rate limit
-e --enable-pex Enable peer exchange
-E --disable-pex Disable peer exchange
-f --folder <path> Folder to set for new torrents
-h --help Display this message and exit
-i --info List all torrents with info hashes
-l --list List all torrents with status
-m --port-mapping Automatic port mapping via NAT-PMP or UPnP
-M --no-port-mapping Disable automatic port mapping
-p --port <int> Port to listen for incoming connections on
-q --quit Quit the daemon
-r --remove <hash> Remove the torrent with the given hash
-r --remove all Remove all torrents
-s --start <hash> Start the torrent with the given hash
-s --start all Start all stopped torrents
-S --stop <hash> Stop the torrent with the given hash
-S --stop all Stop all running torrents
-t --type daemon Use the daemon frontend, transmission-daemon
-t --type gtk Use the GTK+ frontend, transmission-gtk
-u --upload-limit <int> Max upload rate in KiB/s
-U --upload-unlimited No upload rate limit
-x --proxy Use proxy command to connect to frontend
Conclusion
Vous l'aurez compris, transmission dispose de nombreux avantages par rapport à ses concurrents :
- léger : s'exécute sur une configuration très modeste (un PIII 800Mhz fait très largement l'affaire).
- puissant : de nombreuse options aussi bien pour les débutants (avec son interface graphique GTK) que pour les utilisateurs plus avancés (ligne de commande et contrôle à distance avec SSH)
- stable : même la version 0.8 en cours de développement et utilisé dans cette article s'avère bonne pour la production.
- rapide : le développement de transmission suit au plus près les spécifications du protocole bittorrent. Au final, les téléchargements sont très rapides sans monopoliser toute la bande passant ou freezer les équipements réseaux de particuliers (petit routeur/switch/hub).
Ressources
- le site officiels de transmission
- une petite documentation de transmission (qui m'a d'ailleurs bien servi !)