Raspberry Pi: Statische/Feste IP-Adresse vergeben

24 Sep
24. September 2013

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.

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

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:

Step 3

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

ersetzen durch

Step 3

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.

Dir hat der Artikel gefallen?
Teile ihn mit deinen Freunden!
38 Antworten
  1. Elias says:

    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

    Antworten
    • Jan Karres says:

      Versuch dich mal einzuloggen, folgende Kommando auszuführen und anschließend den Raspberry Pi nezustarten.

      rm -f ./etc/network/interfaces.swpas

      Antworten
  2. Micha says:

    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 …. ???

    Antworten
    • Jan Karres says:

      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.

      Antworten
      • Micha says:

        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 …

        Antworten
  3. DerTyp says:

    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?

    Antworten
    • Jan Karres says:

      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.

      Antworten
  4. JBD says:

    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

    Antworten
  5. Prost Mahlzeit says:

    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?

    Antworten
  6. Jan Müller says:

    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

    Antworten
    • Jan Karres says:

      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 😉

      Antworten
  7. Jan Müller says:

    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!

    Antworten
  8. Jan says:

    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

    Antworten
  9. Rainer says:

    Hallo Jan,

    klasse Anleitungen, erleichtern mir den Einstieg in die Welt des Pi’s.

    Vielen Dank !

    Gruß…

    Antworten
  10. Peter Arzt says:

    Du könntest noch hinzufügen, wie man den Erfolg mit ifconfig überprüft.
    Mach weiter so!

    Antworten
  11. Conan says:

    Wie stelle ich ein, das der raspbi eine feste ipv4 hat, aber eine dynamische ipv6?

    Antworten
    • Jan Karres says:

      Beschäftige dich doch mal mir dynamischen IPv6 Namensräumen. Nach eine kurzen Recherche erscheint mir dieses Vorhabe nicht so sinnvoll.

      Antworten
      • Conan says:

        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.

        Antworten
  12. Matthias says:

    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

    Antworten
    • Jan Karres says:

      Leider nicht wirklich. Sehr eigenartig sieht es für mich aus, dass etwas mit der Samba Konfiguration an dieser Stelle gemacht wird…

      Antworten
      • Jan.Schmidt says:

        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ß

        Antworten
        • Matthias says:

          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ß

          Antworten
          • Jan Karres says:

            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?

  13. Andy says:

    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?

    Antworten
  14. Peter says:

    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

    Antworten
  15. Edward says:

    Hilfe!!

    Ich habe aus Versehen das Verzeichnis /etc/network/interfaces gelöscht (Es ist jetzt einfach leer).
    Wie kann ich es wiederherstellen?

    Antworten
  16. Fadri says:

    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.

    Antworten
  17. Christian Feusi says:

    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?

    Antworten
  18. Robert says:

    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

    Antworten

Trackbacks & Pingbacks

  1. […] 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 […]

  2. […] man, dass das RPI immer unter der gleichen IP-Adresse verfügbar ist, so kann dieses Tutorial genutzt […]

  3. […] 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 […]

Antworten

Kommentar verfassen

JanKarres.de © 2007-2016