Zum Inhalt

Raspberry Pi: Torrent-Client headless installieren

Deluge BitTorrent-Client LogoDer Raspberry Pi wird gerne als Medien-Server ausgewiesen. Gute Ideen und Tutorials sind aber teilweise noch rar oder schlecht gemacht – es werden falsche Pakete empfohlen, oder sie sind einfach veraltet (weil sie für alte Intel-Linux-Systeme geschrieben wurden)

Ich möchte in diesem Blog ein paar Ideen vorstellen, wie man den Raspberry Pi nutzen kann. Über eine Idee hatte ich bereits geschrieben: Den Raspberry Pi mit der Software efa2 (Elektronisches Fahrtenbuch) als Bootshaus-PC verwenden. Der Artikel stieß auf größeres Echo als viele andere Artikel. Heute geht es also mit einem anderen beliebten Programm – vielmehr Protokoll – weiter: Bittorrent mit Deluge.

Headless-Installation

Zunächst installiert man die Linux-Distribution Raspbian (Anleitung) auf dem Raspberry Pi. Diese wird mit einer grafischen Oberfläche ausgeliefert. Diese möchte man wahrscheinlich vom Raspberry Pi entfernen, da er so mehr Kapazitäten für den Serverbetrieb übrig hat. Alle nicht benötigten Pakete können so entfernt werden:

Das ist übrigens die gleiche Liste wie aus dem vorherigen Artikel. Es wird der LXDE-Desktop vom Raspberry Pi entfernt, sowie alle Bibliotheken, die zu LXDE und/oder dem X11-Server gehören. Diese werden nicht benötigt.

Ein Betrieb einer Anwendung auf einem Server ohne (native) grafische Oberfläche nennt sich »headless« (engl.: kopflos). Es handelt sich bei dieser Anleitung also um ein Tutorial für einen Raspberry Pi-Server mit Rasbpian-Distribution mit einem »headless Torrent-Client« (blödes Denglisch!).

Die Wahl des Torrent-Clients

Gut, nun haben wir einen Raspberry Pi ohne Anwendung. Es gibt viele Torrent-Clients, und viele davon laufen auch auf dem Raspberry Pi. Welche Anwendung nehmen wir für das BitTorrent-Protokoll? Folgende Anforderungen muss diese erfüllen:

  • Der BitTorrent-Client muss unter Linux laufen (logisch).
  • Der BitTorrent-Client muss in den Debian-Paketquellen enthalten sein, damit wir sie nicht neu kompilieren müssen.
  • Der BitTorrent-Client muss natürlich ohne GUI installierbar sein.
  • Der BitTorrent-Client sollte eine Weboberfläche haben.
  • Der BitTorrent-Client sollte aktuell sein und mit Updates versorgt werden.

Auf Grund der genannten Eigenschaften habe ich mich für Deluge entschieden. Deluge wurde in der Programmiersprache Python geschrieben (welche der Raspberry Pi ja unterstützt) und erfüllt genau die genannten Eigenschaften. Außerdem bietet der Deluge-BitTorrent-Client viele Funktionen an, darunter die Weitergabe von Gegenstellen (µTorrent-Peer-Exchange), Verschlüsselung, DHT usw. – alles auf Basis der Bibliothek libtorrent. Um es vorwegzunehmen: Deluge läuft einwandfrei auf dem Pi.

Deluge Webinterface mit Torrents
Deluge Webinterface mit Torrents

Dieses Ziel wollen wir nun im folgenden Erreichen. Der Client hat ein sehr schönes Webinterface, welches einer Desktop-Anwendung kaum nachsteht. Im Bildschirmfoto seht ihr ein paar freie Torrents, etwa ein aktuelles Ubuntu-Abbild, LibreOffice und Parted Magic.

Installation von Deluge

Deluge ist als Paket verfügbar. Es muss nur darauf geachtet werden, nicht aus versehen die grafische Oberfläche zu installieren –  sonst zieht man die ganzen Bibliotheken wieder an, die wir im ersten Schritt entfernt haben. Letztendlich klappt es mit folgendem Befehl:

Es gibt noch das Paket deluge-webui , das ist aber vom Paket  deluge-web  ersetzt worden. Man braucht es also gar nicht zu installieren. Das Paket  deluge-console  hingegen ist optional. Dieses stellt eine Text-Oberfläche bereit, falls man einmal nicht auf die Weboberfläche zugreifen kann.

Den Torrent-Client Deluge absichern

Nun ist es sicherlich sinnvoll, für jeden Dienst einen eigenen User anzulegen. Warum? Weil durch eingeschränkte Rechte keine anderen Teile der Raspberry Pi-Installation beschädigt werden können. Das geht wie folgt:

Mit dem Befehl wird ein System-Benutzer »deluge« ohne Passwort erstellt, der sich also nicht anmelden kann und sogar sein Home-Verzeichnis nicht auf der Home-Partition der anderen Benutzer (falls vorhanden) hat.

Deluge als Dienst/Daemon starten

Als nächsten schreiben wir folgendes in die Datei /etc/default/deluge-daemon :

Dazu erstellen wir nun das passende Init-Script: deluge-daemon. Ihr könnte es wie folgt herunterladen:

Es liegt bereits im korrekten Verzeichnis. Es muss nun ausführbar gemacht werden:

Das Script kann nun beim Systemstart ausgeführt werden.

Um Deluge zu starten und zu stoppen, verwendet ihr nun das Init-Script: sudo /etc/init.d/deluge-daemon {start|stop|status} . Alternativ könnt ihr den Pi nun auch neu starten – er wurde ja als Startskript eingetragen.

Deluge per Webinterface verwalten

Um das Webinterface zu starten, geht ihr mit einem Browser auf euren Raspberry Pi mit Port 8112, etwa http://raspberrypi:8112/. Ihr verbindet euch nun mit dem Daemon auf »localhost« (der Server, auf dem auch das Webinterface und der Daemon laufen – also euer Raspberry Pi aus Sicht des Webinterfaces).

Deluge Web UI - Connection
Deluge Web UI – Connection

Wenn man sich verbunden hat, lässt sich nun arbeiten. Ihr seht bereits das Webinterface, wie auf dem allerersten Screenshot in diesem Artikel. Bevor ihr Torrents hinzufügt, solltet ihr Deluge aber noch konfigurieren.

Downloadziele einrichten

Zunächst empfiehlt es sich, einen weiteren, »abgekapselten« Bereich auf einer externen Festplatte, USB-Stick o.ä. als Downloadziel einzurichten. Diese können etwa unter  /media/festplatte hängen – oder für kleine, wenige Torrents genügt auch die SD-Karte, auf der Raspbian installiert ist. Über die Ordnereinstellung ist es also möglich, den Torrent-Client Deluge auf dem Raspberry Pi mit einer externen Festplatte zu nutzen. Kein Problem! 🙂

Deluge-Einstellungen: Download-Ordner
Deluge-Einstellungen: Download-Ordner

Die Ports auf eurem Router öffnen

Falls ihr eine Fritz!Box nutzt, ist der letzte Schritt ganz einfach. Damit die Gegenstellen (Peers) aus dem Internet sich mit euch verbinden können, müssen sie den Weg zu eurer IP-Port-Kombination kennen, die auf den Raspberry Pi zeigt. Das funktioniert ganz automatisch über das Netzwerk-Protokoll UPNP (Universal Plug and Play). Funktioniert es, seht ihr die Ports im Webinterface eurer Fritz!Box unter »per UPNP geöffnete Ports«, wie auf dem folgenden Bild zu erkennen.

Fritz!Box zeigt UPNP-Verbindungen vom Torrent-Client Deluge
Fritz!Box zeigt UPNP-Verbindungen vom Torrent-Client Deluge

Falls ihr einen anderen Router besitzt oder UPNP ausgeschaltet habt, müsst ihr die Ports per Hand freigeben. Wichtig ist natürlich, dass ihr auch an UDP und nicht nur TCP denkt. Wie ihr die Portfreigaben/-weiterleitungen einrichtet, entnehmt ihr am Besten anderen Foren oder den offiziellen Anleitungen. Außerdem müsst ihr auch in den Deluge-Einstellungen die Ports auf einen festen Bereich beschränken.

Fazit

Der Raspberry Pi taugt als BitTorrent-Server sehr wohl.  Er ist sicherlich nicht der schnellste Server, da die Festplatte etwa nur per USB 2.0 angeschlossen wird und der Raspberry Pi mit bis maximal 1000 MHz nicht der schnellste Server ist – er taugt aber trotzdem als solcher. Bei mir laufen sogar noch weitere Dienste, etwa Mumble und git (mehr dazu in späteren Artikeln). Und das macht er ganz locker und prima mit!

Rechtliches

Teile dieses Artikels stammen havetheknowhow.com und wurden verändert wiedergegeben.

Das Deluge-Logo steht unter der GNU General Public Licence. Der Quelltext (im SVG-Format) lässt sich hier herunterladen: Wikipedia-Datei: Deluge-Logo.

Published inHow Tos

26 Comments

  1. Maik Maik

    Hallo Benjamin,

    das Tutorial ist sicherlich sehr gut aufgebaut.
    Anfangen sollte man aber eventuell nicht mit „Zunächst möchte man möglicherweise die grafische Oberfläche vom Raspberry Pi entfernen.“, sondern mit „Wie man Raspbian(?????) installiert“ (Was ist denn auf dem Rasp drauf dessen Oberfläche man entfernen kann?).

    Evtl. noch „Das habe ich in diesem „Howto“ beschrieben“ (hab keins gefunden)

    Gruß Maik

    • Benjamin Marwell Benjamin Marwell

      Hallo Maik,

      ich hoffe, ich habe deinen Kommentar richtig verstanden.

      Raspbian ist das Grund-Betriebssystem für den Raspberry Pi – genau gesagt, eines davon. Ich habe die Installation dazu bewusst ausgeblendet. Warum? Weil ich der Auffassung bin, dass jemand, der ein Linux betreibt, sich auch zu einem gewissen Level damit auskennen sollte. Bei einem Artikel über ein Windows-Tool würde schließlich auch niemand erwarten, dass die Windows-Installation beschrieben wird.

      Außerdem grenzt man sich damit von der Vielzahl der existierenden RPi-Anleitungen ab: Deluge und efa2 sind Sonderanwendungen, die eine Nische von Anwendern bedienen. Ich möchte in diesem Artikel vor allem verdeutlichen, dass nicht nur Transmission auf dem Raspberry Pi läuft, sondern auch Deluge, welches (meiner Meinung nach) eine viel schönere Benutzeroberfläche hat.

      Die Installation von Raspbian unterscheidet sich zudem auch je nach Host-Betriebssystem: Man kann die SD-Karte unter Windows, Linux, MacOS und sogar BeOS, QNX, *BSD, Haiku, AmigaOS etc. erstellen.

      Hier überlasse ich es also selbst dem mündigen User, die Suchmaschine zu bedienen. Für diesen Fall übernehme ich das aber auch gerne: http://bit.ly/1006Er7 😉

      Viele liebe Grüße,
      Benjamin

      • Maik Maik

        Hallo Benjamin,

        nein ich meinte nicht das die Installation des Betriebssytems hier beschrieben werden sollte. Aber wie du ja selbst geschrieben hast, gibt es mehrere für den RaspberryPi. Deswegen wäre es hilfreich zu wissen von welchem Grund-Betriebssystem du ausgegangen bist.

        Auf „normale“ PCs übersetzt lautet deine Überschrift ungefähr: „Intel® Core™ i7-2600K – System: Torrent-Client headless installieren“… da würden die Leute auch fragen von welchem OS du ausgehst 😉

        • Benjamin Marwell Benjamin Marwell

          Oh ja, tatsache!

          Ok, sagen wir „Acer Aspire 1234 – Torrent Client headless installieren“, denn immerhin ist die Hardware gleich. Aber du hast natürlich recht, das auf dem ARM eine Vielzahl von Distris laufen kann, und der erste Abschnitt auf Raspbian gemünzt ist.

          Ich werde den Text entsprechend anpassen.

  2. Neiluaga Neiluaga

    Hallo,
    ich bin deinem Tutorial gefolgt und habe nun das Problem, dass ich nach dem Starten der torrents nur ein permission denied bekomme. Als Download-Ziel dient eine NTFS-formatierte Festplatte. Ich vermute da meinen Fehler oder weil deluge einen eigenen User ohne Rechte benutzt. Hättest du da eine Lösung parat?
    Viele Grüße

    • Benjamin Marwell Benjamin Marwell

      Hi,

      nimm zum mounten NTFS-3g. Wie mountest du die Platte überhaupt? Ich würde etwa folgenden Eintrag in der /etc/fstab sehen wollen:
      /dev/sda2 /opt/download ntfs-3g -o uid=0,gid=0,noatime,umask=000,locale=de_DE.utf8

      • Neiluaga Neiluaga

        Vielen Dank für deine schnelle Antwort. Ich hatte die /etc/fstab schon bearbeitet, habe dir gestern Abend aber eine ganz wichtige Tatsache verschwiegen, wahrscheinlich aufgrund der späten Uhrzeit und der drölf Tassen Kaffee, die ich intus hatte, um mich am Leben zu halten: Es handelt sich um eine ntfs formatierte Truecrypt-Datei, die ich mounte. Mein Fehler war nun, dass ich diese nur mit m=nokernelcrypto gemountet habe.
        Dein Hinweis mit umask brachte mich dann auf die Idee, die Möglichkeiten von truecrypt, in Sachen verschiedener Filesysteme nochmal anzuschauen und heute morgen ist es mir nun gelungen und ich kriege kein Permission denied mehr mit folgendem Aufruf:
        truecrypt -m=nokernelcrypto --filesystem=ntfs-3g --fs-options=umask=000 Quelle Ziel
        Ich danke dir vielmals für die schnelle Antwort, durch dich bin ich auf die Lösung gekommen!
        Cheers

  3. RobMan RobMan

    Hallo,

    danke für die Anleitung, aber ich habe da auch eine Frage… In der 1.3.3 sind ja Bugs welche in der 1.3.6 behoben sein sollen. Ich habe gelesen das man ein Update auf 1.3.6 per PPA machen kann, aber ich habe keine Ahnung wie. Habe nichts wirklich gefunden und ich will auch nicht mit einer fehlerhaften „How-To“ den Rpi zerschießen und alles neu machen müssen. (Das hatte ich bei Samba schon)
    Kannst Du mich wissen lassen wie ich es am besten mache?

    Habe NOOB drauf. (ging so schön einfach) 😉

    • Benjamin Marwell Benjamin Marwell

      Hallo,
      den Changelog findest du hier: Deluge Torrent Changelog. Schau einfach mal, ob dort ein Bug, der dich wirklich stört, behoben ist.

      Nur wenn dich der Bug wirklich sehr stört, würde ich ein Update empfehlen.

      Hast du dich zum Update entschlossen, würde ich nicht „irgendwelche“ Repositories nehmen, sondern nur ein Repository, wo
      a) eine geprüfte Version enthalten ist
      b) eine aktuelle Version enthalten ist
      c) keine weitere Software enthalten ist, damit diese nicht dein System zerschießt.

      Leider gibt es solch ein Repository meines Wissens nach noch nicht für Raspbian – nur Ubuntu, Debian etc, aber ohne die armhf-Plattform.

      Die beste Möglichkeit liegt wohl darin, über den Quellcode zu installieren. Die genaue Anleitung (kannst mehr oder weniger eine beliebige Ubuntu-/Debian-Anleitung befolgen) gibt es im Deluge Wiki. Du solltest natürlich vorher das Paket per Aptitude entfernen und dich mit Kompilieren schon etwas auskennen.

      HTH,
      Ben

      • RobMan RobMan

        Hallo noch mal,

        ich verliere im Browser immer wieder (nach Sekunden) die Verbindung zu deluge. „The connection to the webserver has been lost!“
        Und so schnell wie das geht, so kann ich kaum etwas darin machen…

        Woran könnte dies denn liegen???
        Verschiedene Browser und Smartphone…

        • Benjamin Marwell Benjamin Marwell

          Hi,

          das liegt definitiv nicht an der verwendeten Version, das Problem habe ich auch nicht. Schau doch mal im Logfile von Deluge nach etwas auffälligem. Das findest du unter /var/log/deluge.

  4. Jetiman Jetiman

    Ich habe alles so gemacht wie beschrieben, aber beim aufrufen der Webseite will er ein Passwort haben?

  5. Jetiman Jetiman

    Was muss ich tun damit ich mit Deluge für Windows auf dem Server einloggen kann?
    Der Windows Client findet den Server nicht.
    Wenn ich ihn als „pi“ user starte, findet er ihn

    • Benjamin Marwell Benjamin Marwell

      Hallo,

      dazu muss der Daemon für Verbindungen von anderen Rechnern zugelassen werden. Die Anleitung findet sich hier: http://dev.deluge-torrent.org/wiki/UserGuide/ThinClient‎. Der Befehl lautet:
      deluge-console "config -s allow_remote True"
      In diesem Tutorial beschreibe ich nur das WebInterface von Deluge.

      • Jetiman Jetiman

        Das habe ich schon gemacht. Aber es geht nicht.

  6. Jonas Jonas

    Hallo
    Ich habe ein kleines Problem!
    Ich kann auf kein verzeichnis zugreifen. Kann mir bitte jemand helfen?
    Danke

  7. Marcus Marcus

    hallo,

     

    danke erstmal für das Klasse tutorial, funktioniert soweit ganz gut.

    hab jetzt nur eine frage, wenn ein torrent fertig geladen ist und ich dann deluge beende und neu starte erkennt er nicht das er eigentlich bloß noch in den seed springen muss, er zeigt jedesmal error an.

    Wo liegt der fehler, gespeichert wird auf einer ntfs festplatte.

     

     

    • Benjamin Marwell Benjamin Marwell

      Hallo Marcus,

      ohne genaue Fehlermeldung kann ich da auch nur raten. Ab und zu hilft es, einfach mal die Integrität zu prüfen. Möglicherweise kann man mit einem Rechtsklick auf den Torrent oder einer Option des Torrents die Prüfung aktivieren (Hash Check, etc.).

      Wenn der Torrent erst nach Beenden des Downloads auf die externe HDD geschoben wird, könnte es aber auch sein, dass das Verschieben noch gar nicht fertig war. Generell ist es ja nicht notwendig, Deluge zu beenden.

      Ich kann nur empfehlen, das gleiche Vorhaben mal mit einer ext4-formatierten Festplatte auszuprobieren. Wenn es dann geht, liegt es an NTFS. Ich kann mir aber nicht vorstellen, dass das Dateisystem solch eine Auswirkung haben sollte, es sei denn, es fehlen Leserechte auf die Datei.

  8. Maschine Maschine

    Hallo,

    ich habe das Tutorial gut durchgestanden bis zum Schluss. Allerdings habe ich ein kleines Problem:
    Der Download startet und bricht nach kurzer Zeit ab mit der Meldung Error:

    Permission denied: /\media\724a31cd-c2e7-4b32-9ddd-57c0de6df01e\Torrent\nicht_fertig/raspbmc-2014-06-13.img.gz

    Ich möchte die Dateien auf meiner externen Festplatte mit einem fat-Dateisystem speichern.

    Mein System ist raspbmc und hat sonst keine Probleme mit dem Zugriff auf die Festplatte.

    Folgende Berechtigungen habe ich erteilt:
    drwxr-xr-x 7 pi pi 4096 Jul 28 20:17 724a31cd-c2e7-4b32-9ddd-57c0de6df01e

     

    Viele Grüße
    Maschine

  9. Marcus Marcus

    Hallo!

    Erst einmal vielen Dank für die Anleitung.

    Es tut mir leid, dich zu belästigen, aber leider gibt es da eine Stelle an der ich nicht weiterkomme. Ich erhalte immer „Permission denied: /share/hitachitwo/…“ nachdem ich einen torrent hinzufüge.

    Die Festplatte habe ich über „mkfs -t ext4“ formatiert und dann in fstab über

    UUID=…       /share/hitachitwo ext4  uid=0,gid=0,noatime,umask=000  0       0

    eingebunden.

    ls -l share ist:

    drwxrwsrwx+ 2 root root  4096 Feb 28 23:42 hitachitwo

     

    Ansonsten hab ich alles so wie in der Anleitung gemacht: adduser etc.

    Nun weiß ich nicht, was ich ändern muss, damit ich in deluge auf die Platte Zugriff bekomme.

    Für einen Tipp wäre ich dir sehr verbunden.

    Gruß!

     

    • Benjamin Marwell Benjamin Marwell

      Hi, der Tipp war aber urspünglich für NTFS-Partitionen gedacht, nicht für ext4. Versuch mal folgendes:
      chmod ugo+rwx /share/hitachitwo. Damit sollten nun wirklich alle schreiben können.

  10. Benjamin Marwell Benjamin Marwell

    Ohne das cdn. geht es, ich habe den Artikel entsprechend korrigiert. Das CDN nutze ich ja nicht mehr.

    Die Suche nach deluge init Script hätte es auch getan, zumal sysvinit ja kaum noch genutzt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.