Raspberry Pi – IP-Adresse / SSH / VNC / Hostname vor dem Erststart konfigurieren (headless)

Kein Kommentar Autor: Jürgen (jdo)

Hast Du Bildschirm, Tastatur und Maus, lässt sich der Raspberry Pi ohne weitere Probleme installieren und konfigurieren. Sind die Peripheriegeräte aber nicht zur Hand, sind Dir trotzdem die Hände nicht gebunden. Viele wichtige Einstellungen beim Raspberry Pi oder Raspbian kannst Du headless oder vor dem ersten Start konfigurieren. Sehr praktisch ist das zum Beispiel für die Inbetriebnahme eines Raspberry Pi Zero W.

Eigentlich musst Du den Raspberry Pi nur so weit konfigurieren, dass Du Fernzugriff darauf bekommst. Anders gesagt ist das Aktivieren von SSH notwendig und Du brauchst natürlich eine Netzwerkverbindung. Wir können sowohl die Ethernet-Schnittstelle als auch die WLAN-Netzwerkkarte vor den ersten Start konfigurieren. Eventuell musst Du dem Pi noch eine statische IP-Adresse geben, solltest Du das Gerät nicht anderweitig im Netzwerk finden. Selbst ein grafischer Fernzugriff via VNC ist möglich, auch das kannst Du während der Installation der microSD-Karte einrichten.

Konfigurierst Du den Rasperry Pi headless, brauchst Du lediglich einen Pi, eine microSD-Karte und eine Stromversorgung. Für diesen Artikel habe ich die komplette Version von Raspbian Buster (with desktop and recommended software) auf einer microSD-Karte mit 64 GByte* installiert und einen Raspberry Pi 4 benutzt. Die Raspbian-Abbilder findest Du im Download-Bereich der Projektseite.

Raspbian Buster gibt es in drei Versionen

Raspbian Buster gibt es in drei Versionen

Setzt Du Raspbian Buster Lite ein, ist natürlich die Konfiguration von VNC hinfällig, da es keine grafische Oberfläche gibt. Die Lite-Variante eignet sich zum Beispiel hervorragend, wenn Du mit RaspAP aus Deinem Pi einen Hotspot machen willst oder Du den Werbeblocker Pi-Hole einsetzen möchtest.

Zur Installation benutze ich Etcher

Es gibt verschiedene Möglichkeiten, Ein Raspbian-Abbild auf die microSD-Karte zu schreiben. Meiner Meinung nach ist die angenehmste Option Etcher. Die Software gibt es für Linux, macOS sowie Windows. Damit ist Raspbian Buster schnell auf dem Datenträger eingespielt.

Mit Etcher ist Raspbian Buster Full schnell installiert

Mit Etcher ist Raspbian Buster Full schnell installiert

Je nach Größe des Abbilds und Geschwindigkeit der microSD-Karte dauert der Vorgang etwas. Ist das Image geschrieben und Du bindest die microSD-Karte nochmal im System ein, bekommst Du zwei Partitionen angezeigt. Die eine Partition nennt sich rootfs und die anderen heißt boot.

rootfs und boot

rootfs und boot

Wir brauchen boot für den nächsten Schritt.

Tipp: Bei einer neueren Version des Raspberry Pi Imagers kannst Du für manche Betriebssysteme einige Voreinstellungen definieren.

Beim Raspberry Pi Imager 1.6 kann man das WLAN direkt konfigurieren

Beim Raspberry Pi Imager 1.6 kann man das WLAN direkt konfigurieren

Eine statische oder fixe IP-Adresse kannst Du aber nicht vergeben.

SSH aktivieren

Update: Auch SSH kannst Du in der Zwischenzeit bequem via Raspberry Pi Imager aktivieren. Diese Methode hier funktioniert aber immer noch.

SSH aktivierst Du sehr einfach. Dazu musst Du einfach eine leere Datei ssh im Verzeichnis von boot anlegen. Ich habe das unter Linux Mint 19.2 mit dem Dateimanager Nemo gemacht. Es funktioniert aber auch über die Kommandozeile mit

touch ssh

Wichtig ist, dass die Datei keine Endung hat. Das sieht so aus, wenn es fertig ist.

Datei ssh anlegen, um Fernzugriff zu ermöglichen

Datei ssh anlegen, um Fernzugriff zu ermöglichen

Schließt Du den Raspberry Pi nun am Netzwerk an, wäre SSH aktiviert.

Achtung! Per Standard sind Anwendername und Passwort pi und raspberry. Es könnte also jeder mit Grundkenntnissen auf Deinen Raspberry Pi zugreifen. Deswegen ist es sehr wichtig, dass Du das Passwort so schnell wie möglich änderst.

Bist Du via SSH angemeldet, kannst Du das via

sudo raspi-config

erledigen oder auch ein

passwd

auf der Kommandozeile ist möglich.

Das Passwort sofort ändern

Das Passwort sofort ändern

Damit änderst Du genauer gesagt das Passwort für den Anwender pi.

Netzwerk aktivieren

Wie Du sicher weißt, gibt es bei neueren Raspberry Pis zwei Netzwerkschnittstellen. Einmal ist das die Ethernet-Schnittstelle und zum anderen die drahtlose Netzwerkkarte / WLAN / Wi-Fi.

Die kabelgebundene Netzwerkkarte ist sehr einfach zu konfigurieren. Eigentlich musst Du das Kabel nur am Router einstecken und der Raspberry Pi bezieht automatisch eine IP-Adresse. Ich gehe davon aus, dass auf dem Router oder im Netzwerk ein DHCP-Server läuft.

Bei WLAN haben wir das Problem, dass wir der Netzwerkkarte sagen müssen, mit welcher SSID oder welchem drahtlosen Netzwerk sie sich verbinden soll.

Raspberry Pi vor dem ersten Start am drahtlosen Netzwerk anmelden

Auch für diesen Schritt müssen wir eine Datei im Verzeichnis boot anlegen. Sie nennt sich wpa_supplicant.conf. Im Gegensatz zur Datei ssh bleibt sie nicht leer, sondern wir hinterlegen die Informationen für die Anmeldung am WLAN.

country=de
update_config=1
ctrl_interface=/var/run/wpa_supplicant

network={
 ssid="<Name Deiner SSID / Deines WLANs>"
 psk="<Passwort für das WLAN>"
}

Natürlich musst Du <Name Deiner SSID / Deines WLANs> und <Passwort für das WLAN> entsprechend ersetzen.

Ich gehe einfach davon aus, dass Dein WLAN mit einem Passwort geschützt ist. Ungeschützte WLANs macht man eigentlich nicht. Funktionieren würde es schon, indem Du in die Datei so etwas schreibst:

network={
    ssid="<Name Deiner SSID / Deines WLANs>"
    key_mgmt=NONE
}

Nun ist Dein Raspberry Pi direkt beim ersten Start via WLAN erreichbar.

Wie finde ich denn meinen Pi im Netzwerk?

Damit Du Dich via SSH mit dem Raspberry Pi verbinden kannst, musst Du seine IP-Adresse oder den Hostnamen wissen. Per Standard ist der Hostname raspberrypi. Wie Du den Hostnamen vor dem ersten Start änderst, zeige ich Dir weiter unten. Gerade wenn mehrere Pis in einem Netzwerk sind, empfiehlt sich hier gleich von Beginn an ein einzigartiger Name.

Stecke ich die frisch installierte microSD-Karte in meinem Raspberry Pi und fahre ihn hoch, kann ich das Gerät sofort unter raspberrypi.local von meinem Linux Mint 19.2 aus erreichen. Damit muss ich die IP-Adresse nicht kennen. Klappt das nicht, musst Du die IP-Adresse herausfinden.

Du findest die IP-Adresse des Geräts normalerweise im Router unter den DHCP-Einstellungen, wenn keine statische IP-Adresse vergeben ist. Hast Du keinen Zugriff auf den Router, könntest Du alle Geräte im Netzwerk anpingen und Dein Glück so lange versuchen, bis Du Erfolg hast.

Etwas einfacher geht das auch mit dem Tool pi-oi. Das ist eine Java-Datei, die Du so ausführst:

java -jar pi-oi.jar

Das Tool sucht nicht einfach nach IP-Adressen, sondern nach aktivem OpenSSH. Das Tool ist keine 100-prozentige Garantie, dass es sich um einen Pi handelt. Allerdings schränkt es die Auswahl schon drastisch ein.

Den Raspberry Pi mit pi-oi im Netzwerk finden

Den Raspberry Pi mit pi-oi im Netzwerk finden

Wie Du im Screenshot siehst, hat pi-oi zwei Geräte mit aktivem OpenSSH gefunden. Das eine ist mein InfinityBook und das andere der Pi mit Raspbian Buster. Ich weiß aber sicher, dass im gleichen Netzwerk zum Zeitpunkt des Scans noch mehrere Smartphones und Tablets aktiv waren.

pi-oi liegt richtig

pi-oi liegt richtig

Auf jeden Fall lag pi-oi richtig und die IP-Adresse gehörte tatsächlich zum gewünschten Gerät. Sobald Du SSH-Zugriff auf Dein Raspbian hast, kannst Du alles weitere über die Konsole konfigurieren. Trotzdem lassen sich einige Einstellungen schon vor dem ersten Start festlegen.

Statische IP-Adresse beim Raspberry Pi vergeben

Die Konfiguration einer statischen IP-Adresse ist dann sinnvoll, wenn der Pi zum Beispiel als Server dient. Vielleicht soll darauf eine Nextcloud laufen.

Ich persönlich vergebe die feste IP-Adresse gerne via DHCP-Server im Router. Das hat mehrere Vorteile. Ich zentralisiere damit die Verwaltung der IP-Adressen und der DHCP-Server wird gar nicht erst versuchen, die IP-Adresse abermals zu vergeben. Dazu musst Du aber die Mac-Adresse Deines Geräts wissen. Moderne Router zeigen aber auch die an und bei diversen Geräten kannst Du statische IP-Adressen mit nur einem Klick festlegen.

Das ist aber nicht immer möglich und Du kannst eine fixe IP-Adresse auch im Betriebssystem konfigurieren. Hier musst Du aber aufpassen, dass die IP-Adresse nicht bereits aktiv ist, da es sonst zu einem Konflikt kommt. Bist Du Dir nicht sicher, dann ist eine hohe Nummer in Deinem Netzwerk einen Versuch wert. In meinem Fall wäre die 192.168.178.251 nicht vergeben.

Wir benutzen hier wiederum die Partition rootfs und editieren die Datei /etc/dhcpcd.conf. Am Ende der Zeile fügst Du dann zum Beispiel folgende Zeilen ein.

interface eth0

static ip_address=192.168.178.251/24
static routers=192.168.178.1
static domain_name_servers=192.168.178.1

Die erste Zeile legt die Netzwerkschnittstelle fest – hier eth0 oder Ethernet (Kabel). Beim Raspberry Pi ist wlan0 die drahtlose Netzwerkkarte, falls Du der eine statische IP-Adresse zuweisen möchtest.

Danach folgt die eigentliche IP-Adresse, die das Gerät erhalten soll.

Im Anschluss legst Du die IP-Adresse des Routers oder des Internet Gateways fest.

Der DNS-Server in der letzten Zeile ist in meinem Beispiel gleichzeitig der Router. Du kannst aber auch andere DNS-Server eintragen, wenn Du zum Beispiel ein Pi-Hole im Netzwerk betreibst oder auch FreeDNS.

Wie gesagt bin ich kein Fan dieser Methode, sondern benutze lieber den DHCP-Server im Netzwerk dafür.

Hostname des Raspberry Pi ändern

Willst Du den Hostnamen vor den ersten Start ändern, musst Du eigentlich nur eine Datei ändern. Sauberer ist es aber, wenn Du den Namen an zwei Stellen anpasst. Den eigentlichen Hostnamen änderst Du in der Datei /etc/hostname. Du findest sie in der Partition rootfs. Du wirst feststellen, dass Du normalerweise nur Leserechte auf die Datei hast. Ich habe sie deswegen mit root-Rechten auf der Kommandozeile angepasst.

Der Hostname steht außerdem noch in der Datei /etc/hosts. Dort ist der Name der IP-Adresse 127.0.0.1 (localhost) zugewiesen. Einige interne Komponenten nutzen den Namen eventuell. Die sauberste Lösung ist, den Hostnamen in beiden Dateien zu ändern.

Ich habe den Hostnamen bei mir auf raspi4 geändert und danach war der Pi unter raspi4.local auffindbar.

Mit geändertem Hostnamen ist der Pi unter raspi4.local erreichbar

Mit geändertem Hostnamen ist der Pi unter raspi4.local erreichbar

Willst Du den Hostnamen nachträglich ändern, geht das auch via

sudo raspi-config

Unter 2 Network Options -> N1 Hostname darfst Du den Namen über das Raspi-Konfigurations-Tool aktualisieren.

Hostname via raspi-config einrichten

Hostname via raspi-config einrichten

Wie Du siehst, kannst Du viele Einstellungen vor der Inbetriebnahme Deines Pis festlegen. Im Endeffekt ist es so, wenn Du keine Peripheriegeräte wie Bildschirm, Tastatur und Maus zur Hand hast: Sobald Du Zugriff via SSH etablierst, hast Du gewonnen. Ab dann sind alle Einstellungen ein Kinderspiel.

Fernzugriff via VNC auf Raspbian Buster Desktop vor dem Erstart

Leider gibt es keine Möglichkeit, den VNC-Server so ähnlich wie SSH vor dem ersten Start zu konfigurieren. Das macht aber nichts. Sobald Du Zugriff via SSH hast, kannst Du den VNC-Server via

sudo raspi-config

aktivieren. Es gibt aber Fallstricke bei VNC unter Raspbian. Deswegen habe ich dem Thema einen separaten Beitrag gewidmet.

Grundsätzlich kannst Du viel über die Partitionen ändern

Kennst Du Dich mit Linux gut aus, kannst Du über den Zugriff auf die Partitionen rootfs und boot eigentlich alles anpassen. Bequem ist das meist aber nicht. Viel besser ist es, sich zunächst Fernzugriff via SSH zu beschaffen und dann die Administration beginnen. Das ist meiner Meinung nach der Weg des geringsten Widerstandes, wenn Peripheriegeräte wie Tastatur, Maus und Bildschirm nicht verfügbar sind.

Nette Pi-Konstellation

Suchst Du ein VPN für den Raspberry Pi? NordVPN* bietet einen Client, der mit Raspberry Pi OS (32-Bit / 64-Bit) und Ubuntu für Raspberry Pi (64-Bit) funktioniert.




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.