Raspberry Pi – IP-Adresse / SSH / VNC / Hostname vor dem Erststart konfigurieren (headless)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.