unworkable: BitTorrent-Client für die Konsole und benutzbar

Eure guten Vorsätze für das neue Jahr? Meine, oder besser gesagt einer davon, sind: Auch mal was Kurzes schreiben. 🙂 Ich habe in letzter Zeit zu viele Ideen und eine davon war der Frage nachzugehen, was es denn sonst noch so für die Konsole an BitTorrent-Programmen gibt.
Zugegebenerweise an rTorrent kommt niemand vorbei. Ich bin nach wie vor überzeugt und fasziniert von diesem Programm. Es hat alles, was man sich von einem BitTorrent-Client wünschen kann und es kommt dazu noch mit dieser schicken Ncurses-Oberfläche.
rTorrent 2013
Übrigens enthält dieses Bild einen versteckten Fingerzeig auf ein anderes cooles Projekt. 🙂
Wieso sollte man sich also von rTorrent abwenden, wenn man eine tastengesteuerte Menüführung, mehrere Übersichtsseiten und zahllose Informationen praktisch zum Nulltarif geboten bekommt, will heißen, nichts was einen selbst 10 Jahre alten Rechner ins Schwitzen bringen könnte.
Noch mehr Minimalismus. Unworkable ist praktisch der Gegenansatz zu aria2. Während letzteres auch HTTP-, HTTPS-, FTP-, BitTorrent-Protokolle und ebenso Metalink beherrscht, konzentriert sich unworkable ausschließlich auf eine Sache - BitTorrent.

Bedienung?

unworkable Pfad zur Torrent-Datei
Kein Ncurses. Jedoch kann unworkable natürlich auch seeden. Standardmäßig jedoch werden eingehende BitTorrent-Verbindungen unterbunden und müssen erst mit der -p Option freigeschaltet werden. Das erhöht ein wenig die Sicherheit und trägt noch mehr zum minimalistischen Charme bei. Wer also nur ein BitTorrent-Programm für die Konsole sucht, das einzig und allein auf einen Zweck getrimmt ist und sehr ressourcenschonend ist, findet hier alles was er braucht.

Transmission-remote-cli womöglich schon bald offiziell in Debian

Im Januar widmete ich mich der Bittorrent-Anwendung Transmission und seinen Begleitern für die Konsole, allen voran transmission-remote-cli. Der in Python geschriebene Konsolenklient kann mit Hilfe von Ncurses alle Aufgaben des grafischen GTK/QT Clients übernehmen, kommt dabei aber vollkommen ohne grafischen Ballast aus und ist dementsprechend ressourcenschonender für ältere Rechner oder effizienzbewusste Serveradministratoren. Mit einem Augenzwinkern wünschte ich mir schon damals ein eigenständiges Debian-Paket.
Seit heute zeichnet sich ab, dass meine Wünsche Realität zu werden scheinen, denn Fehlerbericht Nummer #663017 wurde verfasst, der sich mit der Bitte um Aufnahme in Debian beschäftigt. Mit etwas Glück gibt es also schon bald ein eigenständiges Debian-Paket, welches eine echte Alternative zum Champion der Bittorrent-Klienten für die Konsole sein kann: rtorrent.

Transmission: BitTorrent mit Daemon und Konsole

Versprochen ist versprochen. Im letzten August hatte ich geschrieben, dass Transmission neben rTorrent mein Favorit und bevorzugter grafischer Client für Bittorrent ist. Doch wenn es auch ohne GUI gehen soll, lässt einem Transmission nicht im Stich. Kurz entschlossen installierte ich den Transmission Daemon, damit ich die gesamte Anwendung über ein Webinterface oder die Konsole steuern konnte.
Damals funktionierte leider die Ncurses-Oberfläche nicht, die ich vorstellen wollte, doch mit Transmission 2.33 in Unstable und dem letzten Stand des Konsolenclients transmission-remote-cli, lassen sich nun alle Aufgaben mit Ncurses auch über einen Terminal erledigen.

Installation

aptitude install transmission-daemon

Konfiguration

Die Konfiguration des Daemons findet bei Debian und Ubuntu in /etc/transmission-daemon/settings.json statt. Die einzelnen Optionen und was sie bewirken, werden ausführlich im Transmission-Wiki unter der Rubrik EditConfigFiles beschrieben. Erklärt wird dort auch, wo sich die Konfigurationsdateien bei Debian&Co finden lassen.
Die voreingestellten Werte garantieren schon den unkomplizierten Zugriff auf den Server und die Bedienung mit Hilfe der verschiedenen Frontends. Das gilt aber nur, wenn man sowohl Client als auch Server auf dem gleichen Rechner sehen will. Wer hingegen den Transmission-Daemon fernsteuern möchte, sollte noch die IP-Adresse der zugreifenden Clients mit Hilfe der Einstellung rpc-whitelist in settings.json hinzufügen. Wildcards sind ebenso möglich.

"rpc-whitelist": "127.0.0.*,192.168.*.*"

Man muss nur beachten, dass der Daemon-Prozess vorher mit
/etc/init.d/transmission-daemon stop
beendet worden ist, da ansonsten die Einstellungen automatisch wieder auf den vorherigen Zustand zurückgesetzt werden.

transmission-remote-cli

Es gibt danach verschiedene Möglichkeiten auf Transmission ohne grafische Oberfläche zuzugreifen. Die einfachsten Werkzeuge sind transmission-cli und transmission-remote, mit denen man lokal oder entfernt Befehle an den Daemon delegieren kann. Wer eine an rTorrent angelehnte Ncurses-Oberfläche sucht, sollte sich das in Python geschriebene transmission-remote-cli von github herunterladen.
Befindet sich der Client schließlich auf der Whitelist, muss man nur noch in einem Terminal
python transmission-remote-cli.py -c Benutzername:Passwort@IP-Adresse:Port
ausführen, um sich mit dem Server zu verbinden. In meinem konkreten Beispiel also:

python transmission-remote-cli.py -c transmission:transmission@192.168.0.105:9091



Die Bedienung erklärt sich mit der ? Taste von selbst. Transmission-remote-cli beherrscht die üblichen Fähigkeiten eines BitTorrent-Clients, darunter die Justierung für die Up- und Downloadrate, Start und Pause, Verifizierung des Torrents und gewährt auch Einblick darüber, was man gerade herunterlädt. Die Torrents lassen sich schnell mit s nach Alter, Seedern, Leechern, Ratio, Größe und mehr sortieren. Mit f kann man zwischen den gleichen Ansichten wie bei rTorrent umschalten. Das Einzige was mich gestört hat, war die fehlende Tab-Vervollständigung beim Hinzufügen von Torrents mit der Taste a.
Fazit für alle Transmission-Fans: Wer Transmission gut findet und den BitTorrent-Client auf einem Server fernsteuern möchte, hat gleich mehrere Optionen zur Hand, Webinterface, pure Konsole oder die Ncurses Schnittstelle. Anforderungen an die Hardware? Der Server ist der knapp 11 Jahre alte Inspiron 4000, als Client benutzte ich für diesen Test den 14 Jahre alten Thinkpad 600. Jetzt muss nur noch jemand den Python-Client für Debian packen. 😉

Transmission: Mein anderer Bittorrent-Favorit

Ich bin Ubuntu dankbar dafür, dass es mich seinerzeit zu Transmission geführt hat. Ich erinnere mich auch nur noch dunkel daran, wie der grafische Client davor hieß, den Ubuntu als Standard auslieferte und die schwergewichtige Anomalie namens Azureus, die noch viel früher meinen Desktop zierte, möchte ich am liebsten vergessen. Seitdem Transmission seinen ersten Auftritt bei Ubuntu hatte, bin ich wunschlos glücklich, wenn es um Bittorrent-Aufgaben geht. Mittlerweile habe ich aber mit Rtorrent eine würdige Alternative für die Konsole gefunden, die effektiv und anspruchslos ihre Dienste verrichtet.
Wenn ich aber gefragt werde, welchen Bittorrent-Client ich empfehlen würde, dann wäre Transmission immer noch erste Wahl. Die Vorteile sind unverkennbar. Auch wenn Rtorrent ein wahres Biest ist, die meisten Leute werden erst einmal die Augen verdrehen, wenn sie eine Ncurses-Konsolenanwendung sehen. Transmission hingegen lässt sich auch für nicht eingefleischte Linuxgeeks schmackhaft machen. Die GUI ist intuitiv und alles funktioniert sofort nach der Installation, ohne dass man sich durch diverse Untermenüs oder Handbuchseiten arbeiten müsste. Zusätzlich ist Transmission für alle bekannten Betriebssysteme verfügbar sei es Linux, Windows, FreeBSD oder MacOS und genau deshalb konnte ich meine Schwester als bekennenden Apple Fan auch von dieser kleinen Anwendung überzeugen. 😉
Transmission kann aber noch mehr. Wer Ubuntu installiert kommt, ohne es vielleicht zu wissen, mit transmission-gtk in Kontakt. Dabei gibt es aber auch eine grafische QT-Oberfläche, ein Webfrontend und, wer hätte es gedacht, auch eine Konsolenvariante. Als Alternative zu Rtorrent bietet sich deshalb z.B. eine Installation von transmission-daemon oder transmission-cli an.
Ersteres lässt sich dann direkt über den Browser ansteuern. Standardmäßig lauscht der Transmission-Daemon auf Port 9091 und mit dem Benutzer und Passwort "transmission" hat man dort direkten Zugriff auf all seine Bittorrent Aufgaben.

Transmission-cli dagegen ist eine reine Konsolenanwendung. Im einfachsten Fall startet man den Download mit transmissioncli meinTorrent.torrent. Natürlich gibt es noch diverse weitere Optionen, die man an den Befehl anhängen kann, womit sich dann unter anderem die Upload- und Downloadrate und Verschlüsselung einstellen lassen.
In vielen Fällen wird die Konsolenanwendung vollkommen ausreichend sein um sich ein Torrent auf den Rechner zu laden. Rtorrent bietet aber mit der ncurses Oberfläche eine flexiblere Möglichkeit um diverse Optionen des Clients auszuführen. Für Transmission-Cli gibt es eine vergleichbare Oberfläche, die in Python programmiert worden ist. Solange Python > 2.6 installiert ist, sollte es mit transmission-remote-cli möglich sein auch ohne Browser direkt auf den transmission-daemon zuzugreifen und alle wichtigen Einstellungen vorzunehmen. Leider funktioniert diese ncurses Oberfläche nicht mit der aktuellen 2.03 Version in Debian Unstable. Sobald 2.30 dort eintrifft liefere ich einen Screenshot und ein paar Sätze dazu nach.
Alles in allem lässt sich Transmission an alle individuellen Bedürfnisse anpassen und sowohl GUI Fans als auch Puristen kommen auf ihre Kosten.