Dieses Tutorial beschreibt, wie man ein Netzwerk mit dem Standard-Netzwerkmanager dhcpcd einrichtet, der seit 2015-05-05 in Raspbian enthalten ist.
Es gilt für die Foundation-Releases von Raspbian Buster, Raspbian Stretch, Raspbian Jessie und das letzte Raspbian Wheezy.
Buster-Einstellungen sind identisch mit Stretch.
Wenn Sie eine Ethernet-Verbindung mit einem Router verwenden, sollte keine Konfiguration erforderlich sein und es sollte sofort funktionieren.
Der Pi3B+ und Pi4 haben Gigabit-Ethernet-Schnittstellen und funktionieren nur mit einem Gigabit-Ethernet (1000BASE-T) Router, wenn ein 8-adriges CAT 5E-Kabel verwendet wird. Frühere Pi-Modelle, die nur 100BASE-T unterstützten, funktionieren über ein 6-adriges Kabel.
HINWEIS Das eingebaute WiFi des Pi3/Pi Zero W unterstützt keine 5GHz-Netzwerke und kann keine Verbindung zu Ch 12,13 in 2,4GHz-Netzwerken herstellen, bis die drahtlose Regulierungsdomäne eingestellt ist.
WiFi auf 5GHz-fähigen Geräten ist deaktiviert, bis die drahtlose regulatorische Domäne eingestellt ist (Pi4B, Pi3B+, Pi3A+)
- Die Domäne kann über
Raspberry Pi Configuration
(rc_gui),raspi-config
oder durch Einstellen voncountry=
auf einen entsprechenden ISO 3166 alpha2 Ländercode in/etc/wpa_supplicant/wpa_supplicant.conf
eingestellt werden.
Wenn Sie WiFi und die GUI verwenden, richten Sie sich nach den Foundation-Richtlinien ein
Wenn Sie WiFi von der Kommandozeile aus verwenden, richten Sie sich nach den Foundation-Richtlinien einDies ist die einzige Möglichkeit, ein Netzwerk einzurichten, das nicht sendet SSID
.
Dies kann auch verwendet werden, um ein „Headless“-System einzurichten, z.B. mit einem seriellen Konsolenkabel, aber es ist VIEL einfacher, wenn Sie einen Monitor und eine Tastatur für die Einrichtung ausleihen können. Siehe unten für eine andere mögliche Methode, bei der ein Ethernet-Kabel zu einem PC verwendet wird.
- Headless Raspbian WiFi Setup
- Wie lautet meine IP-Adresse?
- SSH
- Netzwerkdateien
- Hinweise zu veralteten Betriebssystemen
- Predictable Network Interface Names
- Einrichten einer statischen IP-Adresse
- Erweiterte dhcpcd-Konfiguration
- Fallback-Profil
- Verhindern, dass dhcpcd eine Schnittstelle konfiguriert
- Verhindern, dass dhcpcd ein Gateway auf einer Schnittstelle konfiguriert
- Host Specific Configuration
- Verwenden Sie verschiedene wpa_supplicant Dateien
- Verbinden eines Computers mit dem Pi
- Umfang:
Headless Raspbian WiFi Setup
Raspbian prüft seit Mai 2016 den Inhalt des Boot-Verzeichnisses auf eine Datei namens wpa_supplicant.conf
und kopiert die Datei nach /etc/wpa_supplicant
, wobei eine eventuell vorhandene wpa_supplicant.conf
-Datei ersetzt wird. Die Datei im Boot-Verzeichnis wird dann entfernt. Dies kann verwendet werden, um die Headless-Einrichtung zu aktivieren, indem man die unten beschriebenen wpa_supplicant.conf
-Einstellungen verwendet oder einen Raspberry Pi headless einrichtet (Sie werden wahrscheinlich auch ssh
aktivieren wollen.)
Wie lautet meine IP-Adresse?
Wenn Sie nur wissen wollen, welche IP Address
Ihr Pi verwendet, geben Sie hostname -I
auf der Kommandozeile ein.
SSH
Ab der Version vom November 2016 ist der SSH-Server in Raspbian standardmäßig deaktiviert. Sie müssen ihn manuell aktivieren.
Geben Sie sudo raspi-config
im Terminal ein, wählen Sie zuerst advanced options
, navigieren Sie dann zu ssh
, drücken Sie Enter
und wählen Sie ssh-Server aktivieren oder deaktivieren.
Für ein Headless-Setup kann SSH aktiviert werden, indem eine Datei mit dem Namen „ssh“ ohne Erweiterung auf der Boot-Partition der SD-Karte abgelegt wird.
Netzwerkdateien
Wenn Sie ein aktuelles Raspbian verwenden, sollte
/etc/network/interfaces
wie unten angegeben sein. Wenn Sie es geändert haben, PUT IT BACK. (Oder beiStretch
einfach löschen – es macht effektiv NICHTS.)
# interfaces(5) file used by ifup(8) and ifdown(8)# Please note that this file is written to be used with dhcpcd# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'# Include files from /etc/network/interfaces.d:source-directory /etc/network/interfaces.d
Die Datei /etc/wpa_supplicant/wpa_supplicant.conf
wird durch die empfohlenen Setup-Methoden erstellt/verändert, kann aber auch von Hand eingerichtet werden. Aktuelle Raspbian haben eine Option in raspi-config
, um SSID und Passwort einzugeben. Sie sollte etwa folgendes enthalten:-
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=AUnetwork={ ssid="ESSID" psk="Your_wifi_password"}
Wenn Sie sich mit einem privaten Netzwerk verbinden wollen (d.h. kein Broadcast SSID
), fügen Sie die Zeile scan_ssid=1
innerhalb von network={⋯}
ein.
HINWEIS Wenn Sie sich mit verschiedenen Netzwerken verbinden wollen (z.
Wenn Sie Zugang zu mehreren Netzen haben und sich mit einem bestimmten Netz verbinden wollen, fügen Sie die Zeile
priority=100
in dennetwork={⋯}
-Eintrag ein.
Sie können für jedes Netzwerk eine andere Priorität wählen, das zugängliche Netzwerk mit der höchsten Priorität wird ausgewählt; die Voreinstellung ist 0.
Es gibt viele andere Optionen, die verwendet werden können, siehe man wpa_supplicant.conf
.
Hinweise zu veralteten Betriebssystemen
Jessie enthält nicht den 10-wpa_supplicant
-Hook zur Verwaltung von WiFi-Schnittstellen, daher werden Links zu wpa_supplicant benötigt. Diese Einstellungen sind inkompatibel mit Predictable Network Interface Names.
Das von Jessie verwendete /etc/network/interfaces
sollte sein:-
# interfaces(5) file used by ifup(8) and ifdown(8)# Please note that this file is written to be used with dhcpcd# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'# Include files from /etc/network/interfaces.d:source-directory /etc/network/interfaces.dauto loiface lo inet loopbackiface eth0 inet manualallow-hotplug wlan0iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.confallow-hotplug wlan1iface wlan1 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Hinweis: Der Aufruf von dhcp in /etc/network/interfaces
deaktiviert dhcpcd
.
Predictable Network Interface Names
Stretch
führte1 vorhersagbare Netzwerkschnittstellennamen ein, die in anderen Distributionen schon seit einiger Zeit verwendet wurden.
Netzwerkschnittstellen haben Namen, die aus einem Präfix en
– Ethernet oder wl
– wlan gebildet werden, gefolgt von x
, das MAC
angibt, und dem MAC
z.B. enxb827eb123456
oder wlx00c140123456
.Das Onboard-WiFi des Pi4, Pi3 und PIZeroW, das über sdio
verbunden ist, wird jedoch den Namen wlan0
verwenden. Dies kann für diejenigen von Vorteil sein, die mehrere Netzwerkschnittstellen verwenden, aber für die meisten Pi-Benutzer mit einer einzigen Ethernet- und WiFi-Schnittstelle wird es kaum einen Unterschied machen. Die vorherigen Namen eth0
und wlan0
können wiederhergestellt werden, wenn man net.ifnames=0
auf der Kernel-Befehlszeile in /boot/cmdline.txt
angibt.
Es gibt eine Option in raspi-config
, um vorhersagbare Netzwerkschnittstellennamen zu aktivieren.
1. Aus irgendeinem unverständlichen Grund hat die Foundation nur 3 Wochen nach Einführung der lang erwarteten Funktion beschlossen, „vorhersagbare Netzwerkschnittstellennamen für Ethernet-Geräte zu deaktivieren“. Es gibt eine Option unter Advanced Options
von raspi-config
, um diese Einstellung umzuschalten.
Einrichten einer statischen IP-Adresse
Wenn Sie möchten, dass Ihrem Pi eine vorhersehbare IP-Adresse zugewiesen wird, können Sie entweder eine in Ihrem Router reservieren ODER den DHCP-Server bitten, eine zuzuweisen.
Das folgende Beispiel fordert eine Adresse auf wlan0 an.
interface wlan0request 10.1.2.99
request
Fordern Sie die Adresse in der DHCP DISCOVER Nachricht an. Es gibt keine Garantie, dass dies die Adresse ist, die der DHCP-Server tatsächlich gibt.
Wenn Sie eine IP-Adresse innerhalb des vom DHCP-Server verwalteten Bereichs anfordern, die verfügbar ist, sollte dies beachtet werden, andernfalls weist der DHCP-Server eine Adresse wie üblich zu.
Wenn Sie wirklich eine statische IP-Adresse benötigen, siehe separate Antwort Statische IP-Adresse
Erweiterte dhcpcd-Konfiguration
Raspbian verwendet standardmäßig dhcpcd
, um Netzwerkschnittstellen zu verwalten. Dies geschieht automatisch, und die meisten Benutzer müssen nicht mehr tun, als die SSID und das Passwort für drahtlose Netzwerke anzugeben.
Es ist möglich, zu konfigurieren, wie dhcpcd
funktioniert, indem man Optionen in /etc/dhcpcd.conf
eingibt; siehe man dhcpcd.conf
.Es gibt einen guten Artikel über dhcpcd
unter https://wiki.archlinux.org/index.php/dhcpcd
Im Folgenden werden einige der gängigsten Konfigurationen beschrieben:-
Fallback-Profil
Es ist möglich, ein statisches Profil innerhalb von dhcpcd
zu konfigurieren und darauf zurückzugreifen, wenn der DHCP-Lease fehlschlägt. Dies ist vor allem für Headless-Maschinen nützlich, bei denen das statische Profil als „Wiederherstellungsprofil“ verwendet werden kann, um sicherzustellen, dass es immer möglich ist, eine Verbindung mit der Maschine herzustellen. Das statische Profil wird wie jede andere statische IP-Adresse eingerichtet
# define static profile profile static_eth0 static ip_address=⋯ static routers=⋯ static domain_name_servers=⋯ # fallback to static profile on eth0 interface eth0 fallback static_eth0
Verhindern, dass dhcpcd eine Schnittstelle konfiguriert
Dies wird oft gemacht, um dem Pi zu ermöglichen, als Access Point zu agieren (der mit anderen Dateien konfiguriert werden muss), während die normale DHCP
-Konfiguration auf anderen Schnittstellen erlaubt wird.
Fügen Sie denyinterfaces wlan0
am Ende der Datei hinzu (aber über allen anderen hinzugefügten Schnittstellenzeilen).
Verhindern, dass dhcpcd ein Gateway auf einer Schnittstelle konfiguriert
Wenn Sie möchten, dass eine Schnittstelle keine Standardrouten installiert (oft in Verbindung mit einer statischen IP-Adresse verwendet), geben Sie an
nogateway
Host Specific Configuration
dhcpcd
kann Schnittstellen abhängig vom Host-Netzwerk konfigurieren. Dabei wird das Address Resolution Protocol (ARP) verwendet, um Hosts anhand ihrer MAC- oder IP-Adresse zu prüfen, bevor eine DHCP-Auflösung versucht wird.
interface bge0 arping 192.168.0.1 # My specific 192.168.0.1 network profile dd:ee:aa:dd:bb:ee static ip_address=192.168.0.10/24 # A generic 192.168.0.1 network profile 192.168.0.1 static ip_address=192.168.0.98/24
Sie können DHCP beschleunigen, indem Sie die ARP-Prüfung deaktivieren, wenn Sie diese Funktionen nicht verwenden und ein einfaches Netzwerk haben.
noarp
Verwenden Sie verschiedene wpa_supplicant Dateien
Es ist möglich, dhcpcd so zu konfigurieren, dass verschiedene wpa_supplicant.conf Dateien für eine bestimmte drahtlose Schnittstelle verwendet werden.
Erstellen Sie eine Datei mit dem Namen wpa_supplicant-"$interface".conf
in /etc/wpa_supplicant/
z.B. wpa_supplicant-wlan0.conf
wird nur von
/etc/wpa_supplicant/wpa_supplicant.conf
wird für alle anderen drahtlosen Schnittstellen verwendet.
Verbinden eines Computers mit dem Pi
Neuere Versionen von Raspbian (die dhcpcd
verwenden) erlauben ssh
über eine link-local
Adresse zu arbeiten und avahi
(was eine zeroconf-Implementierung ist) ermöglicht es Programmen, Hosts zu erkennen, die in einem lokalen Netzwerk laufen.
Das bedeutet, dass man den Pi an einen Computer (mit einem Ethernet-Kabel) oder einen lokalen Netzwerk-Router anschließen kann, ohne die IP-Adresse zu kennen.
Sie können sich von Linux und OS X aus einfach mit ssh [email protected]
(der Standard-Hostname ist raspberrypi
) verbinden, was mit gängigen GUI ssh
-Programmen funktionieren sollte.
Dies ist manchmal problematisch mit einigen Versionen von Windows und Netzwerken, die .local auf eine nicht standardisierte Weise verwenden. (Siehe https://en.wikipedia.org/wiki/.local)
HINWEIS .local
Die Auflösung funktioniert nicht immer, z.B. in rsync
. Das folgende sollte die IP auflösen (und kann in bash
Skripte eingebunden werden)RemotePi=$(getent hosts hostname.local | awk '{ print }')
Wenn dein System nicht über getent
verfügt, um die hosts
abzufragen, z.B. macOS, kannst du folgendes verwenden:-RemotePi=$(arp -n hostname.local | awk '{x = ; gsub(//, "", x); print x }')
Wenn du mehrere Pi hast, musst du sicherstellen, dass jeder Pi einen eindeutigen Hostnamen hat.
Sie können ein Crossover-Kabel verwenden, aber Sie brauchen keins (die meisten modernen Schnittstellen erkennen das automatisch).
Ein Nachteil der direkten Verbindung ist, dass der Pi keinen Internetzugang hat und das Datum nicht eingestellt werden kann. Sie können das Datum vom Host kopieren, indem Sie ssh [email protected] sudo date -s$(date -Ins)
vor der Verbindung ausführen.
Umfang:
In diesem Tutorial geht es darum, eine normale Raspbian-Installation so einzurichten, dass sie mit der mitgelieferten Software auf das Internet zugreifen kann. Es deckt auch Verbindungen zu anderen Computern im selben Netzwerk ab.
Es richtet sich in erster Linie an neue Benutzer, die Schwierigkeiten haben, ihren Pi (insbesondere WiFi) zum Laufen zu bringen.
Es deckt NICHT ab:-
- Andere Netzwerk-Manager.
- Erweiterte Netzwerke auf dem Pi betreiben (z.B.
DHCP
Server, Tunnelling, VPN, Access Point).- Verwendung von
ipv6
(obwohl dies funktionieren sollte, wenn man einipv6
Netzwerk hat).- Alternative Netzwerkeinstellungen. (Es gibt viele verschiedene Möglichkeiten, ein Netzwerk einzurichten.)