Raspberry Pi: Statische/Feste IP-Adresse vergeben
Der Raspberry Pi bekommt im Normalfall im internen Netzwerk mittels des DHCP-Servers des Routers automatisch eine IP zugewiesen. Es gibt jedoch den Fall, dass der Router immer wieder eine andere IP-Adresse an den Raspberry Pi vergibt, sodass man nach jedem Neustart nachsehen muss, welche IP-Adresse der Raspberry Pi nun hat. Diesem Problem kann man mit dem Avahi Daemon für Bonjour begegnen, oder man weist den Raspberry Pi an, immer dieselbe IP-Adresse anzufordern. Alternativ kann man manche Router auch anweisen immer dieselbe IP-Adresse zu vergeben. Da es verschiedene Möglichkeiten zur Umsetzung gibt, erkläre ich im Folgenden drei Wege wie man den Router oder den Raspberry Pi so konfiguriert, dass der Raspberry Pi immer unter der gleichen IP-Adresse erreichbar ist. Dies ist für verschiedene Dienste, wie z.B. SSH-Zugriff, sehr von Vorteil.
Wir schauen uns nun drei Möglichkeiten im Detail an:
- 1. Konfiguration des DHCP-Client vom Raspberry Pi
- 2. Konfiguration mittels einer Datei in der Netzwerkkonfiguration des Raspberry Pi
- 3. Konfiguration des Routers
1. Konfiguration des DHCP-Client
Diese Möglichkeit ist empfohlen für Raspbian Jessie (Debian 8).
Der DHCP-Client ist das Gegenstück zum DHCP-Server des Routers, d.h. er bekommt von diesem seine IP-Adresse im Netzwerk zugewiesen. Dies geschieht automatisch: jeder Client bekommt einfach die nächste freie Adresse im verfügbaren Adressbereich. Da dieser Adressbereich begrenzt ist, werden ungenutzte Adressen nach einiger Zeit wieder neu vergeben und es kann vorkommen, dass der Raspberry Pi häufig eine andere IP-Adresse bekommt. Nun kann man diesen DHCP-Client so konfigurieren, dass er den DHCP-Server schon vor der automatischen Vergabe der IP-Adresse mitteilt, dass er von diesem immer die gleiche Adresse zugeteilt bekommen möchte.
Zunächst müssen wir die Gateway herausfinden. Dies ist die Adresse unter der in eurem Netzwerk euer Router ansprechbar ist. Diese können wir mittels folgendem Kommandos herausfinden. Wir nehmen dabei die IP-Adresse aus der Spalte Gateway, die nicht 0.0.0.0 entspricht. Bei mir lautet diese 192.168.178.1.
netstat -r -n
Die Konfiguration des DHCP-Client erfolgt dann in der Datei /etc/dhcpcd.conf. Hier fügen wir dann einen Block mit der IP-Adresse, die der Raspberry Pi dann haben soll, dem Pfad zum Router (Gateway) und einem DNS-Server ein.
sudo nano /etc/dhcpcd.conf
Der einzufügende Block zeigt eine Beispielkonfiguration für IP-Adressen, die z.B. bei einer Fritz!Box standardmäßig eingestellt ist. Die Adressen sind dann nach den eigenen Gegebenheiten anzupassen, dabei aber darauf achten, eine IP-Adresse für den Raspbery zu nehmen, die nicht im Zuweisungsbereich des DHCP-Servers des Routers liegt. Bei der Fritz!Box ist dieser Bereich 192.168.178 mit dem letzten Block 1-99, also kann die IP des Raspberry z.B. 192.168.178.100 sein. Speichern kann man mittels STRG+X, Y und Enter.
Am Ende der Datei nach einer Leerzeile Folgendes einfügen:
# Konfiguration feste IP-Adresse interface eth0 static ip_address=192.168.178.100/24 static routers=192.168.178.1 static domain_name_servers=192.168.178.1
Zuletzt starten wir das Netzwerkdienstprogramm neu, damit die Einstellungen übernommen werden.
sudo /etc/init.d/networking restart
Nun fordert der Raspberry Pi immer die gleiche IP-Adresse im Heimnetzwerk an.
2. Konfiguration mittels einer Datei in der Netzwerkkonfiguration des Raspberry Pi
Diese Möglichkeit ist empfohlen für Raspbian (ältere Versionen) oder vergleichbare Distributionen
Step 1
Zunächst müssen wir die Gateway herausfinden. Dies ist die Adresse unter der in eurem Netzwerk euer Router ansprechbar ist. Diese können wir mittels folgendem Kommandos herausfinden. Wir nehmen dabei die IP-Adresse aus der Spalte Gateway, die nicht 0.0.0.0 entspricht. Bei mir lautet diese 192.168.178.1.
netstat -r -n
Step 2
Wir bearbeiten die Datei /etc/network/interfaces indem wir den ersten Codeblock durch den zweiten ersetzen. Dabei ersetzen wir die IP-Adresse in der Zeile gateway durch die soeben herausgefundene Gateway Adresse. Des Weiteren schreiben wir in die Zeile address die IP-Adresse, die der Raspberry Pi zukünftig haben soll. Diese muss jedoch in dem erlaubten Adressraum liegen. Am besten verwendet man hier die IP-Adresse, die der Raspberry Pi momentan hat. In meinem Fall lautet diese 192.168.178.28. Speichern können wir diese Änderung in dem Editor nano mittels STRG + X, Y und Enter.
sudo nano /etc/network/interfaces
iface eth0 inet dhcp
ersetzen durch
iface eth0 inet static address 192.168.178.28 netmask 255.255.255.0 gateway 192.168.178.1
Zuletzt starten wir das Netzwerkdienstprogramm neu, damit die Einstellungen übernommen werden.
sudo /etc/init.d/networking restart
Fertig! Der Raspberry Pi fordert nun immer dieselbe interne IP-Adresse an und das Suchen nach der aktuellen IP-Adresse des Raspberry Pis hat ein Ende gefunden 😉
3. Konfiguration des Routers
Diese Möglichkeit ist empfohlen wenn der Raspberry Pi häufig an anderen Netzwerken verwendet wird.
Falls man seinen Raspberry Pi häufig an andere Netzwerke anschließt, sollte die IP-Adresse des Raspberry Pi weiterhin automatisch vom DHCP-Server des Netzwerkes bezogen werden. Für eine feste IP des Raspberry Pi im Heimnetz bietet sich dann an, den Router so zu konfigurieren, dass dieser dem Raspberry Pi immer die gleiche IP zuweist.
Bei der Vielzahl an Routern auf dem Markt ist es hier nicht möglich, für alle die Einstellungen zu beschreiben.
Die Vorgehensweise wird nun beispielhaft an einer Fritz!Box beschrieben.
- Einloggen in die Weboberfläche der Fritz!Box und Ansicht auf „Erweitert“ umstellen
- Heimnetz > Heimnetzübersicht > Netzwerkverbindungen
- In der Auflistung der Netzwerkgeräte wird der Raspeberry Pi unter dem Hostnamen angezeigt, der bei der Installation vergeben wurde
- Neben dem Namen auf den Stift klicken
- Haken bei „Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen.“ setzen
- Unten auf „OK“ klicken
Nun bekommt der Raspberry Pi im Heimnetz vom Router immer die gleiche IP-Adresse und kann sie in anderen Netzen weiterhin vom DHCP-Server beziehen.
Dieses Tutorial wurde am 10. Mai 2016 von Martin Hagenau überarbeitet.
39 Kommentare. Hinterlasse eine Antwort
Hi, erstmal danke für deine Tutorials!
Ich wollte meinem PI gerade ne feste Ip geben doch leider habe ich das Fenster geschlossen und jetzt kommt immer der folgende Fehler. Kannst du mir helfen? Sie kommt auch nach nem neustart noch :(.
E325: ATTENTION
Found a swap file by the name „/etc/network/.interfaces.swp“
owned by: root dated: Fri Nov 1 18:36:55 2013
file name: /etc/network/interfaces
modified: YES
user name: root host name: raspberrypi
process ID: 2460
While opening file „/etc/network/interfaces“
dated: Fri Nov 1 18:27:52 2013
(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use „:recover“ or „vim -r /etc/network/interfaces“
to recover the changes (see „:help recovery“).
If you did this already, delete the swap file „/etc/network/.interfaces.swp“
to avoid this message.
„/etc/network/interfaces“ 9 lines, 171 characters
Press ENTER or type command to continue
Versuch dich mal einzuloggen, folgende Kommando auszuführen und anschließend den Raspberry Pi nezustarten.
rm -f ./etc/network/interfaces.swpas
danke für die Hilfestellung
unklar ist aber, was ist mit den anderen Einträgen in der interfaces Datei
unklar ist auch, warum die IP-Zeilen eingerückt sind
leider lässt sich zum Abschluss strg+y nicht ausführen, strg+x nimmt er …. ???
Würde ich in jedem Tutorial alles rund um die relevante Zeile erklären wären diese bestimmt 10-mal so lange. Von dem her denke ich ist nicht relevant, was mit den anderen Einträgen ist. Die Einrückung dient der Übersichtlichkeit. In dem Tutorial wird zum speichern STRG + X, Y, Enter und nicht STRG + Y … erklärt.
Vielen Dank für die Antwort und die Mühe zu später Stunde am Sonntag !
Das nicht alles erklärt wird, kann ich verstehen, dafür probiere ich alle Varianten aus ohne ein positives Ergebnis und schüttel (leider) immer mehr den Kopf über Linux …
Zum speichern habe ich STRG+X ausgeführt, er springt auch (wie vor 25 Jahren bei dem textbasierten Micosoft Word …) nach unten in die Menüleiste, nur STRG+Y nimmt er „netterweise“ nicht an
Habe das ganze dann mit dem Editor Leafpad bearbeitet, gespeichert und nachdem ich im letzten Anlauf die Zeichen °.° als Einrückung (stammten aus einer anderen Anleitung…) entfernt habe, welch Wunder, er die IP geändert und lässt sich auch anpingen …
Hab dein Dings befolgt (stand genauso in meinem Buch von Conrad 😀 nur war mir da nich ganz klar wo ich das mit dem address hinmachen muss), und jetzt komm ich mit PuTTY nicht mehr auf RaspPi :/ Kann mir bitte wer helfen?
Ich würde spontan darauf tippen, dass du eine IP-Adresse nicht so eingetragen hast wie sie in deinem Netzwerk ist. Du kannst den Raspberry Pi einfach mittels HDMI/Composite/FBAS an einen Bildschirm hängen und dort mit einer angesteckten Tastatur den fehlerhaften Wert korrigieren.
Bei mir hat es funktioniert. Allerdings musste ich meinen Raspi danach kurz den Strom nehmen. Ein sudo shutdown -r now ist vermutlich sicherer.
Gruß
JBD
Vielen Dank für die vielen Anregungen.
Nachdem ich mir einen Pi nun zugelegt habe, stolpere ich über ein grundlegendes Problem: Ich habe auf dem Router eine feste IP-Adresse für den Pi hinterlegt und diese in /etc/network/interfaces erfasst.
bei ifconfig zeigt er unter eth0 keine IP-Adresse, bei Routre wird unter der Überschrift mit Ziel, Router … nichts weiter angezeigt und logischerweise bei
ping mit der statischen IP kommt Network is unreachable.
Hast Du da noch eine Idee?
Ich würde empfehlen entweder am Router eine feste IP zu definieren oder am Raspberry Pi, aber nicht an beiden Seiten. Dann sollte es auch problemloser funktionieren 😉
Vielen Dank für die Hilfe, Pi läuft!
Hi,
erstmal gutes Tutorial. Bei mir hat soweit auch alles geklappt.
Ich habe nur eine Frage, der Raspberry ist ja jetzt auf mein Gateway konfiguriert. Wenn ich jetzt den Raspberry angenommen mit zu einem Kumpel oder so nehme hat das Gateway von meinem Kumpel, ja eine andere IP-Adresse. Kann sich der Raspberry dann trotzdem in das Netwerk (Gateway) von meinem Kumpel einwählen oder wird es dann Schwierigkeiten geben, da der Raspberry ja eine staatische IP von meinen Gateway Zuhause hat?
MFG
J. Müller
Wird wahrscheinlich nicht funktionieren. In dem Fall könntest du jedoch sehen ob du über deinen Router eine feste IP-Adresse für den Raspberry Pi bestimmten kannst anstatt auf dem Raspberry Pi sekbst. Letzterer soll diese dann über DHCP beziehen. Dann sollte es auch bei deinem Kumpel einwandfrei funktionieren 😉
Oke, danke schön!
ich habe mir jetzt überlegt ich mache es so, dass ich einfach eine DynDNS nehme uns der Raspberry bleibt einfach zuhause… 😉
Das Tutorial zum DyDNS von dir ist auch wirklich sehr nice!
Hallo Jan,
bei mir hat die statische Adresse erst mit der Hinzunahme des Eintrags:
network 192.168.178.0 funktioniert. In anderen Anleitungen ist der Router
mit aufgeführt (z.B. https://www.modmypi.com/blog/tutorial-how-to-give-your-raspberry-pi-a-static-ip-address).
Vielleicht ist es ja wirklich wichtig 🙂
Grüßchen
[…] die Einrichtung einer statischen IP-Adresse gibt es im Netz massenhaft Anleitungen, z. B. die hier. Nach dem Einloggen per SSH ist im Prnzip folgendes zu […]
Hallo,
Super Tutorial, hat wunderbar geklappt.
Das einzige Problem was ich habe ist die Geschwindigkeit der Website über WLAN. Eine etwas anspruchsvollere Website benötigt 30-60 Sekunden, was über LAN keine Sekunde dauert. Woran könnte das liegen? Habe schon versucht den Treiber anzupassen, oder den Access Point nur als Standalone für die Webseite zu konfigurieren ohne das NAT, jedoch ohne Erfolg.
Hallo miteineander. Habe alles wie in deinem Tutorial beschrieben gemacht. Habe in der network interfaces Datei die address 192.168.1.45 gesetzt.
Dann wechselt beim Neustart die IP Adresse ifconfig auf 192.168.1.49! Was soll das? der Pi ist dann nur noch über die 49 am Schluss erreichbar. In der interfaces Datei steht aber explizit 45.
Wenn ich in dieser Datei auf 49 wechsle habe ich dann in ifconf wieder die 45.
Was ist da falsch?
Hallo Christian F.,
hatte das gleiche Problem wie du. In den neuen Raspbian Images wird dhcpcd installiert und deshalb findest du unter /etc/network/interfaces auch den folgenden Eintrag:
iface eth0 inet manual
um eine statische IP zu setzen musst du nicht mehr die interfaces-Datei bearbeiten, sondern die Datei /etc/dhcpcd.conf. Bitte setze th0 wieder zurück auf manual.
In der Datei /etc/dhcpcd.conf fügst du am ende der Datei folgende Zeilen hinzu:
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
logischerweise änderst du die IP-Adressen so ab, dass sie mit deinem Netzwerk übereinstimmen. Mehre Informationen findest du unter Single static IP address for eth0
Mit freundlichen Grüßen
Robert
[…] man, dass das RPI immer unter der gleichen IP-Adresse verfügbar ist, so kann dieses Tutorial genutzt […]
Hallo Jan,
klasse Anleitungen, erleichtern mir den Einstieg in die Welt des Pi’s.
Vielen Dank !
Gruß…
Du könntest noch hinzufügen, wie man den Erfolg mit ifconfig überprüft.
Mach weiter so!
[…] Link zum Artikel Jan Karres […]
Wie stelle ich ein, das der raspbi eine feste ipv4 hat, aber eine dynamische ipv6?
Beschäftige dich doch mal mir dynamischen IPv6 Namensräumen. Nach eine kurzen Recherche erscheint mir dieses Vorhabe nicht so sinnvoll.
hat sich erledigt, die software hatte nen schaden und hat keine öffentliche ipv6 angenommen, die v6 war immer scope link.
Nachdem ich rasbian neu drauf gemacht habe, bekommt er eine scope global und das ganz ohne hilfe.
[…] https://jankarres.de/2013/09/raspberry-pi-statischefeste-ip-adresse-vergeben/ […]
Hallo Jan,
ich habe mich über die Anleitung gemacht und danach wieder geändert, da ich eine Fehlermeldung nach dem Restart erhalten habe.
Nun mit den ursprünglichen Daten erhalte ich folgende Meldung nach einem erneuten Restart des PI:
sudo service networking restart
[….] Running /etc/init.d/networking restart is deprecated because it may not r[warnble some interfaces … (warning).
[….] Reconfiguring network interfaces…Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/b8:27:eb:82:d6:77
Sending on LPF/eth0/b8:27:eb:82:d6:77
Sending on Socket/fallback
DHCPRELEASE on eth0 to 192.168.2.1 port 67
Reloading /etc/samba/smb.conf: smbd only.
Write failed: Broken pipe
Evtl. hast du eine Idee und einen Tip für mich.
Gruß,
Matthias
Leider nicht wirklich. Sehr eigenartig sieht es für mich aus, dass etwas mit der Samba Konfiguration an dieser Stelle gemacht wird…
Salve (vor)Namensvetter 😉
ich hab das „gleiche“ Phänomen – außer bis zur Samba Meldung ist die pipe schon abgebrochen 😉
„Früher“ ging das aber tatsächlich mal problemlos.
Als Tipp für dich und deine Leser:
[b]nohup service networking stop && service networking start[/b]
Funktioniert immer noch.
Das nohup ist wichtig, falls die Session doch abbrechen sollte, dann macht er trotzdem weiter (alte tools sind halt die besten)
Warum zwar der Stop und der nachfolgende Start funktioniert, der restart aber nicht wird klar, wenn du dir die /etc/init.d/networking anschaust.
restart ist keine zusammenfassung für „do_stop do_start“
Gruß
Hallo Jan + Jan,
nach Umstieg von Noobs auf Raspbian habe ich es erneut probiert.
Folgende Details der /etc/network/interfaces sind gegeben:
auto lo
iface lo inet loopback
auto eth0
#iface eth0 inet static
#address 192.xxx.xxx.xxx
#netmask 255.255.255.0
#gateway 192.xxx.xxx.xxx
#allow-hotplug eth0
#iface eth0 inet manual
iface eth0 inet dhcp
#iface eth0 inet6 dhcp
+++++++
danach:
+++++++
$ sudo /etc/init.d/networking restart
[warn] Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces … (warning).
[….] Reconfiguring network interfaces…Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/b8:27:eb:82:d6:77
Sending on LPF/eth0/b8:27:eb:82:d6:77
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPOFFER from 192.xxx.x.x
DHCPACK from 192.xxx.x.x
RTNETLINK answers: File exists
bound to 192.xxx.x.xxx — renewal in 863432 seconds.
wpa_supplicant: /sbin/wpa_supplicant daemon failed to start
run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return code 1
wpa_supplicant: /sbin/wpa_supplicant daemon failed to start
run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return code 1
done.
+++++++
Inhalt der /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
+++++++
Ich hab hinsichtlich der Warnung, siehe erste Zeile nach dem Restart schon gesucht, aber nichts gefunden, um diese Meldung zu beheben. Gleiches gilt für die Meldung „wpa_supplicant daemon failed to start“
Evtl habt Ihr eine Idee…
Meine Suche geht weiter!
Gruß
Der Inhalt der /etc/wpa_supplicant/wpa_supplicant.conf sieht auf jeden Fall falsch aus. Es sollte jeder Parameter in einer eigenen Zeile stehen. Und warum ist
allow-hotplug eth0
auskommentiert?[…] Gerät (WLAN Stick anstatt Ethernet Port) mit diesem verbunden ist. Falls gewünscht kann man eine statische/feste IP-Adresse vergeben, was in dem separaten Artikel erklärt wurde. Dabei müssen die dort für eth0 getroffenen […]
hallo 🙂
habe gerade diese anleitung befolgt (nutze OpeneElec bzw erreiche dort die konsole mit dem Windows-Programm „PuTTy“ und da hat sich das ja mit dem sudo befehl erledigt).
wenn ich nun „nano /etc/network/interfaces“ in die konsole eingebe, erstellt er mir eine komplett neue datei, in der sich noch kein inhalt befindet. folglich auch kein inhalt mit „iface eth0 inet dhcp“.
mache ich irgendetwas falsch?
In OpenELEC liegt die Datei wo anders. Wie du es auf eine einfache Art in dieser Distribution änderst ist im Vennercorp Blog beschrieben.
Seit wheezy vom Mai 2015 ist dhcpcd aktiv und da geht das Einstellen einer statischen IP anders. Macht man es nach der hier beschriebenen Art, bekommt der Pi 2 Ip-Adressen, die statische UND eine per DHCP. Weiteres findest Du unter http://www.elektronik-kompendium.de/sites/raspberry-pi/1912151.htm
Hallo Jan,
ich habe auf meinem RPI B+ die unten stehenden Einstellungen vorgenommen und dummerweise alles andere mit „#“ als Kommentar ausgenommen.
Jetzt kann ich nicht mehr über WLAN und PUTTY an den RPI kommen. Da der RPI an einem unzugänglichen Ort ist, habe ich leider nur die Möglichkeit, den Stecker zu ziehen!
Gibt es eine Möglichkeit, den RPI doch noch irgendwie anzusprechen? (Das Ausbauen des RPI ist sehr Zeit- und Kosten aufwendig.
iface eth0 inet static
address 192.168.178.21
netmask 255.255.255.0
gateway 192.168.178.1
Danach Netzwerk neu starten:
sudo /etc/init.d/networking restart
Besser RPi neu starten!
Liebe Grüße
Peter
Hilfe!!
Ich habe aus Versehen das Verzeichnis /etc/network/interfaces gelöscht (Es ist jetzt einfach leer).
Wie kann ich es wiederherstellen?
Hallo, kann man auch statische IP-Adressen für mehrere AP angeben? Also eine für das Heim-Wlan und eine für einen Android HotSpot?