WiFi Setup: Wireless Tools, iw & wpa_supplicant (Artikel 018)
Konfiguration von WLAN-Schnittstellen auf der Kommandozeile. Einsatz von iw, wpa_supplicant und Debugging von Funkverbindungen auf Headless-Systemen.
# Wireless CLI: WLAN-Management ohne Desktop-GUI
TL;DR / Management Summary WLAN auf einem Linux-Server? In Zeiten von IoT-Gateways und Edge-Computing kommt das häufiger vor als man denkt. Vergessen Sie NetworkManager-GUIs. Ein Senior Admin nutzt
iwfür das Interface-Management undwpa_supplicantfür die Authentifizierung (WPA2/WPA3). Wer diese Tools beherrscht, kann auch in schwierigen Umgebungen (Headless, Industrial PCs) stabile Funkverbindungen herstellen.
# 1. Einführung & Architektur
Der Wireless Stack.
WLAN unter Linux besteht aus drei Schichten:
- Kernel-Treiber: Steuert die Hardware (cfg80211/mac80211).
- iw: Das moderne Tool für physikalische Link-Parameter (Frequenz, Kanäle, TX-Power).
- wpa_supplicant: Der Dämon für WPA/WPA2/Enterprise Authentifizierung.
graph TD
A[Hardware: WLAN Card] --- B[Kernel Driver]
B --- C[Interface: wlan0]
C --- D[iw: Link Setup]
C --- E[wpa_supplicant: Auth/Handshake]
E --- F[IP Layer: DHCP/Static]
# 2. Hardware-Check & iw
Ist die Karte bereit?
# Interface finden
# Zeige alle Wireless-Geräte
iw dev
# Scan nach Netzwerken
# Interface aktivieren
sudo ip link set wlan0 up
# Umgebung scannen
sudo iw dev wlan0 scan | grep SSID
# Physikalische Limits prüfen
# Welche Frequenzen und Bandbreiten kann meine Karte?
iw list
# 3. Authentifizierung mit wpa_supplicant
Sicher ins Netz.
# Passwort verschlüsseln
Speichern Sie WLAN-Passwörter niemals im Klartext in der Konfiguration!
wpa_passphrase "MEIN_WLAN" "SuperSecretPassword" | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
# Konfigurations-Datei (/etc/wpa_supplicant/wpa_supplicant.conf)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="MEIN_WLAN"
psk=be76e050... # Verschlüsseltes Passwort
key_mgmt=WPA-PSK
}
# 4. Day-2 Operations: Automatisierung
Dauerhafte Verbindung.
# Starten via Systemd
Ubuntu/Debian bieten ein Template-Service an:
sudo systemctl enable --now wpa_supplicant@wlan0
# IP-Adresse via DHCP
Wenn Sie kein Netplan nutzen, können Sie den DHCP-Client manuell starten (nur für Debugging!):
sudo dhclient wlan0
# 5. Troubleshooting & “War Stories”
Wenn der Empfang schlecht ist.
# Story 1: “Der gesperrte Funkkanal (RF-Kill)”
Symptom: iw dev wlan0 scan gibt “Operation not permitted” zurück, Interface lässt sich nicht auf up setzen.
Ursache: Hardware- oder Software-Switch blockiert den Funk (Regulatory Domain).
Lösung: rfkill list prüfen. Wenn blocked: sudo rfkill unblock wifi.
# Story 2: “Roaming-Hänger im RZ”
Symptom: Ein mobiler Node (z.B. Roboter im Lager) verliert die Verbindung, wenn er sich zwischen zwei Access Points bewegt.
Ursache: wpa_supplicant hält zu lange an einem schwachen Signal fest (Stickiness).
Lösung: Optimieren Sie den bgscan Parameter in der wpa_supplicant.conf:
bgscan="simple:30:-65:300" (Scannt alle 30s, wenn Signal schlechter als -65dBm).
# 6. Sicherheit & Hardening
- WPA3: Wenn Hardware und OS modern genug sind, nutzen Sie
key_mgmt=SAEin der Konfig. - Enterprise (802.1X): Für Firmennetze mit RADIUS brauchen Sie zusätzliche Blöcke wie
identityundpassword(und Zertifikate). - MAC-Randomisierung: Verhindert Tracking, kann aber in Firmennetzen (MAC-Filter) zu Problemen führen. Deaktivierbar via
mac_addr=0in der Config.
# Anhang: Cheatsheet
| Befehl | Wirkung |
|---|---|
iw dev wlan0 link |
Zeigt aktuelle Verbindungsdaten (Signalstärke, Rate). |
iw wlan0 info |
Zeigt Hardware-Fähigkeiten. |
wpa_cli |
Interaktive Shell für wpa_supplicant (Status, Scan, Connect). |
journalctl -u wpa_supplicant@wlan0 |
Logs für die WLAN-Authentifizierung. |
sudo iw dev wlan0 set power_save off |
Deaktiviert Stromsparmodus (wichtig für Latenz!). |