Feste IPv4-Adresse für den Raspberry Pi einrichten

Wer den Raspberry Pi zum ersten Mal in Betrieb nimmt und darauf per SSH zugreifen möchte, der muss zuerst einmal die IPv4-Adresse herausfinden. Geschickterweise zeigt der Raspberry Pi nach dem Boot-Vorgang seine IPv4-Adresse an. Leider ändert sich die IPv4-Adresse immer mal wieder, weil bei der IPv4-Adressvergabe durch den DHCP-Server nicht immer die gleiche Adresse zugeteilt wird, sondern dynamisch irgendeine aus seinem Adress-Pool.

Sofern man den Raspberry Pi als Client benutzt, ist das kein Problem. Doch wenn man den Raspberry Pi als Server innerhalb des lokalen Netzwerk betreiben möchte oder öfter mal per SSH darauf zugreifen will, dann ist eine feste IPv4-Adresse von Vorteil.

Aufgabe

  1. Ermitteln Sie eine freie IPv4-Adresse und die weitere IP-Konfiguration.
  2. Stellen Sie die IPv4-Konfiguration auf statisch um.
  3. Prüfen Sie die Netzwerk-Verbindung auf Funktion.

Lösung

Um eine IPv4-Adresse fest, also statisch zu konfigurieren, öffnet man die Datei mit den Netzwerk-Einstellungen.

sudo nano /etc/network/interfaces

Bei einem frischen System befindet sich dort folgende Zeile:

iface eth0 inet dhcp

Diese Zeile sagt, dass sich das Interface "eth0" eine IPv4-Adresse per DHCP besorgen soll. Das heißt, der Raspberry Pi befragt im lokalen Netzwerk einen DHCP-Server nach einer IPv4-Adresse und weiteren Angaben für die IP-Konfiguration.

Der DHCP-Server liefert dann unter anderem die IPv4-Adresse, die Subnetzmaske, das Standard-Gateway und den DNS-Server. Diese Angaben benötigt man bei der statischen IP-Konfiguration. Auf die Adresse des DNS-Servers kann man verzichten, wenn es die selber Adresse wie beim Standard-Gateway ist.

Die Zeile oben ersetzt man wie folgt:

iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1

Es handelt sich hierbei um eine Beispiel-Konfiguration. Diese kann funktionieren, muss aber nicht. Sie einfach auszuprobieren ist nicht sinnvoll. Man sollte vorher klären, was man hier eintragen muss und nicht irgendwie herumprobieren. Hilfreich ist es, wenn man nachschaut, was andere Clients im eigenen Netzwerk haben. Bei der Vergabe der IP-Adresse muss man jedoch darauf achten, dass man eine wählt, die NICHT verwendet wird. Ansonsten wird es zu Verbindungsproblemen im Netzwerk kommen.

Nachdem man die Änderungen vorgenommen hat kann man die Datei speichern und schließen: Strg + O, Return, Strg + X.

Man hat jetzt nur die Datei geändert. Die Änderungen wurden aber noch nicht übernommen. Grundsätzlich empfiehlt sich hier ein Reboot, wenn man per SSH die Konfiguration vorgenommen hat.

sudo reboot

Alternativ kann man das Interface "eth0" aus- und wieder einschalten. Das ist aber nur dann sinnvoll, wenn man NICHT per SSH verbunden ist, sondern lokal mit Bildschirm und Tastatur am Raspberry Pi sitzt.

sudo ifdown eth0
sudo ifup eth0

Dadurch wird das Interface "eth0" beendet und neu gestartet. Beim Start werden die Einstellungen übernommen. Danach müsste der Raspberry Pi mit seiner statischen IPv4-Adresse erreichbar sein.

Lokal prüfen kann man das mit folgendem Befehl:

ifconfig

Das Interface "eth0" muss dann in der Zeile mit "inet-Adresse" die statische IPv4-Adresse bekommen haben.

Lösung mit wicd-curses

"wicd-curses" ist ein grafischer Netzwerk-Manager, der alle wichtigen Informationen in einer Benutzeroberfläche darstellt, die mit der Tastatur bedient werden muss. Wer sich mit dem Editieren von Text-Dateien schwer tut, für den kann das eine Alternative sein.

Zuerst muss man "wicd-curses" installieren:

sudo apt-get install wicd-curses

Danach führt man das Tool einfach aus.

sudo wicd-curses

Anschließend wird die Benutzeroberfläche dargestellt, die im wesentlichen aus einer Liste der verfügbaren kabelgebundenen und kabellosen Netzwerke besteht.

wicd-curses

"wicd-curses" muss man mit der Tastatur bedienen. Allerdings zeigt ein Menü im unteren Teil des Fensters mögliche Eingaben an.
Mit den Pfeiltasten hoch und runter kann man das Netzwerk auswählen. Mit der "Pfeiltaste nach rechts" kann man den aktuell ausgewählten Eintrag bearbeiten.

wicd-curses

Hier erfolgen die Einstellungen für IP, Subnetzmaske und DNS. Hier kann man auch festlegen, wenn eine Verbindung zu einem Netzwerk automatisch hergestellt werden soll.
Es handelt sich hierbei um eine Beispiel-Konfiguration. Sie einfach auszuprobieren ist nicht sinnvoll. Man sollte vorher klären, was man hier eintragen muss und nicht irgendwie herumprobieren. Hilfreich ist es, wenn man nachschaut, was andere Clients im eigenen Netzwerk haben. Bei der Vergabe der IP-Adresse muss man jedoch darauf achten, dass man eine wählt, die NICHT verwendet wird. Ansonsten wird es zu Verbindungsproblemen im Netzwerk kommen.
Mit "F10" bestätigt man die Einstellungen. Mit "C" wird die aktuell ausgewählte Verbindung hergestellt. Mit "Q" kann man "wicd-curses" beenden.

Hinweis: Diese Art der Konfiguration hat leider einen Nachteil, wenn man es per SSH macht. Wenn die Verbindung zu einem Netzwerk mit "C" aufgebaut wird, dann geht die aktuelle Verbindung außer Betrieb. Das merkt man aber erst mal nicht. Es ist nur merkwürdig, dass das Tool keine Tastatureingabe mehr annimmt. In dem Fall wurde die Ethernet-Verbindung beendet, aber der eigene SSH-Client hat das noch nicht gemerkt, weil der SSH-Server auf dem Raspberry Pi die Verbindung nicht ordnungsgemäß beendet hat. Üblicherweise bricht der SSH-Client die Verbindung nach einiger Zeit mit der Fehlermeldung "Write failed: Broken pipe" selber ab. Es handelt sich dabei um eine Fehlermeldung, die durch den Timeout ausgelöst wird.
Sofern die Konfiguration richtig war sollte es möglich sein, auf die statische IPv4-Adresse eine Verbindung aufzubauen.

Zum Verständnis: "wicd-curses" ist ein Netzwerk-Manager. Er stellt Verbindungen zu bekannten Netzwerken her und baut sie auch selbständig ab. Hierzu muss man wissen, dass "wicd-curses" die Konfiguration in der "/etc/network/interfaces" beim "Management" ignoriert.
Um Probleme zu vermeiden kann es hilfreich sein in dieser Datei alle Interfaces von "static" oder "dhcp" auf "manual" umzustellen.

Lösung: Über den Hostnamen auf den Raspberry Pi zugreifen (Zeroconf/Bonjour/Avahi)

Wer nicht mit IP-Adressen und deren Konfiguration hantieren möchte, kann das Problem auch mit Zeroconf lösen. Mit Zeroconf, auch Bonjour oder Avahi genannt, kann man innerhalb des lokalen Netzwerks eine Verbindung zum Raspberry Pi mit seinem Hostnamen aufbauen. Das heißt, statt der IP-Adresse, die man vielleicht gar nicht weiß, nimmt man einfach den Hostnamen, den man sich viel einfacher merken kann. Das funktioniert sowohl im Browser als auch per SSH.