Der 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:
sudo aptitude purge lxappearance lxde lxde-common lxde-core lxde-icon-theme \
lxinput lxmenu-data lxpanel lxpolkit lxrandr lxsession \
lxsession-edit lxshortcut lxtask lxterminal openbox lightdm \
lightdm-gtk-greeter obconf pcmanfm libfm1 libfm-gtk-bin libfm-gtk1
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.
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:
sudo aptitude install deluge-common deluge-console deluge-web deluged
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:
sudo adduser --disabled-password --system --home /var/lib/deluge --gecos "Bens Deluge server" --group deluge
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 :# Configuration for /etc/init.d/deluge-daemon
# The init.d script will only run if this variable non-empty.
DELUGED_USER="deluge"
# Should we run at startup?
RUN_AT_STARTUP="YES"
Dazu erstellen wir nun das passende Init-Script: deluge-daemon. Ihr könnte es wie folgt herunterladen:cd /etc/init.d; wget -O deluge-daemon http://blog.bmarwell.de/wp-content/uploads/2013/01/deluge-daemon.txt
Es liegt bereits im korrekten Verzeichnis. Es muss nun ausführbar gemacht werden:sudo chmod a+x /etc/init.d/deluge-daemon
Das Script kann nun beim Systemstart ausgeführt werden.sudo update-rc.d deluge-daemon defaults
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).
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! :-)
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.
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.