16. Apr 2013 07:04
Ein Kommentar

Raspberry Pi als Server

Raspberry Pi Server
Raspberry Pi Server

Bereits seit längerem kann ich einen Raspberry Pi mein Eigen nennen. Der Raspberry Pi besitzt einen ARM11 SoC sowie eine Schnittstelle für eine SD Karte, auf welcher er seine Betriebssystem und die dazugehörigen Daten speichert. Dazu verfügt er auch noch über HDMI, einen Klinkenausgang für Audio, 100 Mbit/s Ethernet und zwei USB-Anschlüsse.

Gedacht ist er eigentlich zum Programmieren lernen, Eintauchen in Linux und Allgemein für Bildungsprojekte. Aufgrund seiner modernen Hardware (einem sog. System-on-Chip, kurz SoC) inklusive eines Broadcom ARM11 Prozessors mit HD-Support ist der Raspberry Pi auch bei Technkfans sehr beliebt.

9.999,99 €
Jetzt bestellen »
Raspberry Pi RBCA000 Mainboard (ARM 1176JZF-S, 512MB RAM, HDMI, 2x USB 2.0, 3,5 Watt)

Vorteile des Raspberry Pi im Serverbetrieb

Wer meine Artikel WLAN Sendeleistung erhöhen und OpenWrt auf TP-Link WR1043ND installieren gelesen hat, der weiß dass ich meinem Netzwerk ungern Systeme von der Stange antue. Da spielt die Tatsache eine Rolle, dass ich gerne volle Kontrolle über das Netzwerk habe aber auch bestimmte Sonderlösungen möchte, wie z.B. der VPN-Zugriff auf das Netzwerk mittels SSH. Bisher war insbesondere für den SSH Server inkl. Socks-Proxy, VNC Terminal-Server mit kompletter grafischer Oberfläche immer eine x86 Intel-Computer erforderlich und bei mir auch im Betrieb. Der hohe Stromverbrauch und der Lärm des Lüfters haben mich aber nicht davon überzeugen können, dass dieses Intel x86 Gerät im Dauerbetrieb bei mir laufen kann.

Vor allem aber wirtschaftlich wollte ich das nicht tragen. Für die Stromkosten hätte ich auch ohne weiteres einen weiteren Server in einem Rechenzentrum haben können. Zugleich lief die ältere Hardware mit einem Pentium 4 nicht so stabil, wie das für den Dauereinsatz notwendig gewesen wäre. Ich liebäugelte deshalb schon früh eventuell mit einem Mini ATX Mainboard samt CPU, Hauptspeicher und Festplatte. Gleichsam hätte ich hier aber wieder auf x86, x86_64 bzw. amd64 setzen müssen, was wir viel zu langweilig vorkam. Ohnehin ist in meinem Netzwerk nur noch ein einziger x86 Rechner in Betrieb - rechne ich mein dienstliches Notebook mit ein, sind es immerhin noch Zwei. Dem gegenüber steht der Router mit MIPS und drei Android-Geräte mit ARM, was aber in der Sache egal ist und nur zur Veranschaulichung dient, damit man sieht wie heterogen Netzwerke heute eigentlich geworden sind.

Raspberry Pi Platine

Der Raspberry Pi kam super gelegen und schon bei Bekanntmachung wusste ich, dass das genau das richtige Gerät ist. Ein niedriger Energieverbrauch, Null-Geräuschemissionen (der macht wirklich einfach garkeine Geräusche!), geringe bis garkeine Wärme-Emissionen, eine CPU die ihrer Zeit voraus ist und eine enorm kleine Bauform im Kreditkartenformat. Hinzu kommt ein perfekt abgestimmtes Debian oder Arch Linux System, welches auch alle denkbaren Linux-Pakete mit sich bringt. Das alles macht den Raspberry Pi zwar nicht zum Super-Highend-Server, als Heim-Netzwerkserver ist er aber damit absolut perfekt geeignet. Ob als FTP, Terminal, Samba-Domain-Controller, DNS, Apache Webserver, IRC, irssi-Bot, MySQL oder MongoDB Datenbank oder gleich alles zusammen, der Raspberry Pi macht's.

16,75 €
Jetzt bestellen »
SanDisk Ultra SDHC 32GB UHS-I Class 10 Speicherkarte bis zu 30MB/s lesen
Versandfertig in 3 - 4 Werktagen

Was man für einen Raspberry Pi Server benötigt

Der Raspberry Pi kommt nicht als Fertigbausatz und wenn man ihn bestellt, bekommt man nur die nakte Platine bzw. SoC. Da ist noch kein SD-Speicher, kein USB-Ladegerät, kein HDMI Kabel und nichts dabei. Im Regelbetrieb benötige ich für meinen Raspberry nur die SD-Karte, das USB-Netzteil sowie ein Ethernet-Kabel. Für die Installation hat es sich aber empfohlen auch ein HDMI Kabel zu haben, gesetz dem Fall die SD Karte hat ein kaputtes Dateisystem oder der Raspberry hat andere Beschwerden. Hier hilft dann die Bildschirmausgabe schon. Hat man einmal ein stabiles System, braucht man die nicht mehr. Also wie folgt:

  1. Raspberry Pi Model B
  2. USB-Ladegerät bzw. Netzteil
  3. SanDisk 32GB SDHC Class 10 SD-Karte
  4. HDMI Kabel
  5. RJ45 Ethernet-Kabel

Ich muss wohl hoffentlich nicht erwähnen, dass man zum HDMI Kabel auch den passenden Bildschirm bzw. Flachbildfernseher haben sollte. Genauso empfiehlt sich für das Netzwerkkabel auch ein Router bzw. Netzwerkswitch, den man ja schon haben sollte. Wenn der Server einmal steht, dann ist es natürlich auch eine Frage des Respekts der Technik gegenüber, dem kleinen Pi bei ModMyPi ein ordentliches Gewand zu beschaffen. Die Rote Kiste, in dem mein Raspberry Pi auf dem Bild eingangs zu sehen ist, stammt ebenfalls von dort. Sie steht auch für den Namen meines Pi's, welcher "Red Box" lautet.

9.999,99 €
Jetzt bestellen »
Gehäuse für Raspberry Pi, "ModMyPi" rot

Installation des Raspberry Pi mit Debian bzw. Raspbian

Ich kann mich mit unterschiedlichen Distributionen nicht so sehr begeistern und habe bisher Debian, Ubuntu und OpenSUSE genutzt, wobei OpenSUSE mein Primärsystem ist mit dem ich täglich arbeite. Es gibt das Debian "Raspbian" und Arch Linux für den Raspberry Pi. Das Raspbian gibt es als Hardfloat und Softfloat-Version. Diese unterscheiden sich darin, wie sie Fließkommazahlen berechnen. Arch Linux gibt es nur als Soft-Float. Im Allgemeinen hat man mit Drittanbieter-Software wie z.B. Oracle Java oder Mono mit dem Hardfloat-System mehr Ärger. Ich empfehle es dennoch, denn man braucht Mono nicht unbedingt, OpenJDK ist recht stabil, PHP / Python gibts sowieso und Hardfloat ist schneller als Softfloat. Wir gehen nun also folgende Schritte durch:

  1. Das Betriebssystem Raspbian herunterladen
    (die Soft-float Variante nur, wenn unbedingt nötig)
  2. Der Anleitung "Easy SD Card Setup" folgen und die SD Karte bespielen

Danach hat man eine bootfähige SD Karte und einen Raspberry Pi. Wenn er das erste Mal bootet und keine Zicken macht, dann kann man sich auch direkt per SSH einloggen. Wenn er ärger macht, dann kann man versuchen die SD Karte nochmal neu zu bespielen oder einfach die Fehlermeldung googlen bzw. im RaspberryPi.org Forum suchen.

Erstmalige Konfiguration des Raspberry Pi

Hat man den Raspberry Pi das erste Mal gebootet, dann kommt auch schon raspi-config zum Vorschein. Man kann diese Konfiguration aber auch per SSH durchführen, gesetz dem Fall man hat DHCP im Router für die MAC Adresse des Pi konfiguriert - sollte man auf jeden Fall machen. Standardbenutzer ist "pi" und Passwort ist "raspberry". Durchführen sollte man die Konfiguration in jedem Falle.

Raspi-Config

Zu aller erst mal führt man "expand_rootfs" aus, damit man auch die vollen 23GB der SD-Karte nutzen kann. Als nächstes "change_pass", weil sich ja sonst jeder auf dem Ding mit "pi" und "raspberry" einloggen kann. Für den Server relativ wichtig dann noch "boot_behaviour", um den Desktop beim Boot ausgeschaltet zu lassen. Der VNC Server wird ohnehin einen eigenen Desktop starten und der User-Desktop würde nur unnötig Speicher fressen; Also weg damit.

SSH-Zugriff und VNC-Server konfigurieren

Wie vormals erwähnt verwende ich  meinen Pi für den Login vom Tablet, Smartphone und Notebook aus, um auf dem Pi Irssi für IRC sowie VNC mit LXDE für diverse GUI-Aufgaben zu nutzen. Hierfür benötigen wir zuerst einmal auch den VNC-Server.

Danach kann man mit dem folgenden Befehle simpel und einfach einen VNC-Server mit dem Standard LXDE Desktop und einer Auflösung von 1280x800 Pixeln starten. Selbstverständlich kann man das nach belieben auch weiterkonfigurieren - wie man eben möchte.

Und dann kann man sich mit jedem beliebigen VNC Client inkl. AndroidVNC auf dem Pi einloggen. Möchte man, dass der VNC-Server immer nach dem Boot startet, dann kann man mit "crontab -e" einen Cron-Job anlegen, indem man mit "@reboot vnc-server -geometry 1280x800" den Befehl nach jedem Boot ausführt.

Raspberry Pi VNC und SSH

Obiges Bild zeigt einen Windows-Rechner, der sich mit dem Raspberry Pi über SSH und VNC verbindet. Als SSH Client kommt der Open Source Client PuTTY zum Einsatz und für VNC die portable Version von UltraVNC. Der Zugriff auf VNC erfolgt hierbei über einen SSH Tunnel, der über die SSH Verbindung auf den VNC Port des Pi zugreift.

Router für externen Zugriff auf den Raspberry Pi konfigurieren

Da der Raspberry Pi ja nun noch im internen Netzwerk fest klemmt und man aus dem Internet nicht auf das Gerät zugreifen kann, müssen wir der Firewall noch mitteilen, dass ein Port für den Raspberry SSH Zugriff freigeschaltet werden soll. Das ist je nach Router unterschiedlich. Hat man einen OpenWrt Router, dann  kann man folgende Zeile in die Datei "/etc/config/firewall" einfügen und anpassen:

Die Zeilen bewirken nun nichts anderes, als dass der Port 443 auf meinen Pi mit Adresse 192.168.1.10 auf Port 22 weitergeleitet wird. Den Port 443 habe ich deshalb gewählt, weil er in vielen Hotspot- und Firmennetzen freigeben ist, da hier normalerweise HTTP mit SSL residiert. Port 22 dagegen ist üblicherweise häufig gesperrt und Portscanner sowie Viren und Schädlinge legen einem sonst den Pi mit Bruteforce-Attacken lahm. SSH finde ich immer besser aufgehoben auf Nicht-Standard-Ports. Wird in dem Buch "Hacking the Next Generation" übrigens auch empfohlen. Dass DynDNS - idealerweise auf dem Router und nicht auf dem Pi - aktiviert sein muss, brauche ich wohl nicht weiter zu erwähnen. Es sei denn natürlich, man hat eine statische und keine dynamische IP Adresse.

SSH Tunnel einrichten mit PuTTY

Raspberry Putty SSH Tunnel
Raspberry Putty SSH Tunnel

Da SSH Tunnel mit PuTTY für Leute, die das zum ersten Mal machen, immer recht schwierig ist, erkläre ich es nochmal kurz in den einfach Punkten. Wichtig ist vor allem, dass man das Profil in PuTTY korrekt speichert, denn das ist ein bisschen kompliziert umgesetzt. Man kann die einzelnen Schritte in der nummerierten Abbildung Schritt für Schritt einfach nachvollziehen.

  1. Auswahl des Menüpunkts Connection > SSH > Tunnels
  2. Eingabe Source Port auf "5901". Das ist der lokale Port für VNC. Als Destination "192.168.1.10:5901", wobei die IP Adresse die interne Netzwerk-IP-Adresse des Pi ist
  3. Danach auf Add und idealerweise unter "Session" noch auf Save speichern, damit man das nicht immer von Vorne machen muss
Danach ist der Tunnel auch schon konfiguriert. Jetzt muss man in UltraVNC nur noch "localhost:1" als Verbindung angeben und schon kommt UltraVNC mit dem Pi VNC-Server daher. Auf Android mit AndroidVNC funktioniert das natürlich entsprechend analog dazu.
 
Motorola Xoom mit AndroidVNC auf dem Pi

Das Grundprinzip von SSH Tunneln ist auch immer gleich und so zeigt das obige Bild ein Motorola Xoom Tablet, welches mit der App ConnectBot und AndroidVNC analog zum Windows Rechner ebenfalls eine Verbindung mit dem Pi herstellen kann. Mein einziger Tipp für AndroidVNC ist, dass ich die Eingabemethode "TouchPad" am einfachsten finde, da sich hier der Cursor wie bei einem Touch-Pad bedienen lässt.

Fazit zum Serverbetrieb des Raspberry Pi

Wie eingangs erwähnt ist der Raspberry Pi ideal für den Einsatz als Heimserver, der nur einfache Dienste anbieten soll. Der Einsatz einer größeren externen Festplatte ist zwar möglich, sollte dem schmalbrüstigen Pi aber nicht zugemutet werden. Domain-Controller, Benutzer- und Profilverwaltung, SSH, Terminal, Mail, IRC, Jabber, Apahce und alle anderen Kommunikationsdienste erfüllt er jedoch mit Leichtigkeit. Auch MySQL, Apache und PHP sind auf dem Raspberry Pi kein Problem. Den Serverbetrieb des Pi kann man also jedem empfehlen, der für zu Hause noch einen Linux-Server für Netzwerkdienste oder Applikationen sucht. Wer noch einen alten x86er als Server zu Hause im Kleiderschrank oder der Wäschekammer rumstehen hat, dem empfiehlt sich durchaus ein Umstieg auf den energieeffizienteren Rasperry Pi.

Bücher zum Thema „Raspberry Pi“

Die nachfolgenden Bücher behandeln das Thema "Raspberry Pi" und werden von Amazon empfohlen. Viele dieser Bücher habe ich selbst gelesen und teilweise auch zur Recherche für diesen Artikel genutzt.
39,90 €
Jetzt bestellen »
Raspberry Pi: Das umfassende Handbuch, komplett in Farbe - aktuell zu Raspberry Pi 3 und Zero - inkl. Schnittstellen, Schaltungsaufbau, Steuerung mit ... Gertboard, PiFace und Quick2Wire
Michael Kofler, Rheinwerk Computing
29,99 €
Jetzt bestellen »
Raspberry Pi programmieren mit Python (mitp Professional)
Michael Weigend, mitp
29,95 €
Jetzt bestellen »
Raspberry Pi Manifest: Hardware, Betriebssystem, Programmierung und Elektronik. Über 50 Projekte - gültig für alle aktuellen Modelle.
E. F. Engelhardt, Franzis Verlag
30,00 €
Jetzt bestellen »
Raspberry Pi: Mach's einfach! Die kompakteste Gebrauchsanweisung mit 222 Anleitungen
Christian Immler, Franzis Verlag

Diese Artikel könnten Dich auch interessieren

Besucher, die diesen Beitrag gelesen haben, haben sich auch die unten aufgeführten Beiträge angesehen. Schau' doch einfach mal in die Artikel rein.
58 Besucher haben auch das gelesen
37 Besucher haben auch das gelesen
24 Besucher haben auch das gelesen
19 Besucher haben auch das gelesen
16 Besucher haben auch das gelesen
11 Besucher haben auch das gelesen

Kommentare zum Thema „Raspberry Pi als Server“

Wenn Du möchtest, kannst Du hier Kommentare zum Thema hinterlassen und Dich mit anderen Nutzern austauschen. Damit Du kommentieren kannst, musst Du Dich nur anmelden und schon kann es losgehen.
16.04.2013 18:52
Hey, du hast auf meiner Seite (snakesoft.net) einen Kommentar zum Raspberry Pi hinterlassen mit einem Link zu dieser Seite von dir ;) Der Artikel gefällt mir sehr gut, schön viele Details und Links zum Gerät, OS und Tools :) Schöner Blog.
Jetzt zum Kommentieren anmelden