So verwalten Sie drahtlose Verbindungen mit iwd unter Linux
Iwd ist die Abkürzung für "iNet Wireless Daemon". Wie der Name schon sagt, handelt es sich um einen kostenlosen Open-Source-Daemon für die drahtlose Verwaltung, der von Intel für Linux geschrieben wurde. Es wurde entwickelt, um die Verwendung externer Bibliotheken zu vermeiden, es verlässt sich nur auf die Funktionalitäten, die in den Kernel integriert sind. Es kann zusammen mit NetworkManager als Ersatz für wpa_supplicant oder im Standalone-Modus verwendet werden. In diesem Tutorial werden wir die letztere Option untersuchen.
In diesem Tutorial lernen Sie:
- So installieren Sie iwd auf einigen der am häufigsten verwendeten Linux-Distributionen
- So starten und aktivieren Sie den iwd-Daemon
- So erhalten Sie eine Liste der verfügbaren drahtlosen Netzwerke
- So stellen Sie eine Verbindung zu einem geschützten Netzwerk her
- So aktivieren Sie den in iwd integrierten DHCP-Client
- So erhalten Sie eine Liste der bekannten Verbindungen
- So vergessen Sie eine Verbindung
Verwendete Softwareanforderungen und Konventionen
Installation
Iwd ist in den Repositories aller am häufigsten verwendeten Linux-Distributionen und deren Derivate verfügbar. Hier sehen wir, wie Sie die Installation unter Debian, Fedora und ArchLinux durchführen.
Wenn Sie ein Debian-Benutzer sind, wissen Sie bereits, dass es viele Befehle gibt, die wir verwenden können, um ein Paket auf der Distribution zu installieren. Hier werden wir den benutzerfreundlichen apt-Wrapper verwenden. Wir führen:
sudo apt install iwd
Auf Fedora, der Upstream-/Community-Distribution der Red Hat-Familie, können wir zur Installation eines Pakets dnf (Dandified Yum) verwenden. Um die Installation durchzuführen, führen wir den folgenden Befehl aus:
sudo dnf install iwdWenn Archlinux unsere Lieblingsdistribution ist, können wir den Paketmanager pacman verwenden, um die gleiche Aufgabe auszuführen. Die zu verwendende Syntax ist ebenso einfach. Wir starten unseren Terminal-Emulator und geben den folgenden Befehl ein:
sudo pacman -Sy iwdIm Befehl, den wir verwendet haben, die Optionen: -S und -y. Die erste ist die Kurzversion von --sync: Dies wird die angeforderten Pakete installieren. Die zweite, -y (--refresh), stellt stattdessen sicher, dass eine neue Paketdatenbank heruntergeladen wird.
Das iwd-Paket bietet:
- Der
iwd-Daemon - Das Befehlszeilenprogramm
iwctl - Das
IWMON-Monitoring-Tool
Starten und Aktivieren des iwd-Daemons
Das erste, was wir tun müssen, ist, den iwd-Daemon zu starten und optional zu aktivieren, damit er beim Booten automatisch gestartet wird. Wie können wir das tun? Praktisch alle großen Linux-Distributionen verwenden heutzutage das systemd-Init-System, daher müssen wir zur Ausführung dieser Aufgabe das Dienstprogramm systemctl verwenden. Um den Daemon zu starten, führen wir Folgendes aus:
sudo systemctl start iwdWenn wir auch möchten, dass der Daemon beim Booten automatisch gestartet wird, müssen wir den folgenden Befehl ausgeben:
sudo systemctl enable iwdWir können eigentlich beide Aufgaben mit nur einem Befehl ausführen:
sudo systemctl enable --now iwdSobald der iwd-Dienst ausgeführt wird, können wir mit der Suche nach drahtlosen Verbindungen beginnen.
Abrufen einer Liste der verfügbaren drahtlosen Netzwerke
Bevor wir eine Verbindung zu einem drahtlosen Netzwerk herstellen, sollten wir nach den verfügbaren Access Points suchen und eine Liste dieser Zugangspunkte auf dem Terminal abrufen. Das erste, was wir wissen müssen, um eine solche Aufgabe auszuführen, ist der Name der drahtlosen Netzwerkschnittstelle(n), die auf unserem Gerät verfügbar sind, also führen wir aus:
iwctl device listHier ist die Ausgabe des obigen Befehls auf dem Rechner, den ich gerade verwende:
Devices
--------------------------------------------------------------------------------
Name Address Powered Adapter Mode
--------------------------------------------------------------------------------
wlan0 xx:xx:xx:xx:xx:xx on phy0 station
Die Daten sind in Spalten organisiert. Wir haben die folgenden Informationen:
- Der Gerätename
- Die MAC-Adresse des Geräts
- Der Status der Stromversorgung
- Der Name des Drahtlosadapters
- Der Arbeitsmodus
Wie Sie sehen können, wird der ursprüngliche Kernelname für die Netzwerkschnittstelle anstelle des vorhersagbaren udev-Namens verwendet. In diesem Fall arbeitet das Gerät im "Client"-Modus, so dass "Station" in der letzten Spalte der Tabelle gemeldet wird.
Sobald wir den Namen unserer drahtlosen Netzwerkschnittstelle kennen, können wir mit der Suche nach verfügbaren Verbindungen beginnen. Um eine solche Aufgabe auszuführen, führen wir Folgendes aus:
iwctl station wlan0 scanDer obige Befehl sucht nur nach verfügbaren Netzwerken, erzeugt aber keine Ausgabe. Um die Liste der verfügbaren Verbindungen zu erhalten, sollten wir einen zusätzlichen Befehl danach verwenden:
iwctl station wlan0 get-networksSo würde die Ausgabe des Befehls aussehen:
Available networks
--------------------------------------------------------------------------------
Network name Security Signal
--------------------------------------------------------------------------------
valinor psk ****
arda psk ****
Wenn wir einen Blick darauf werfen, können wir jeden Netzwerknamen, die Art der dafür verwendeten Sicherheit (eine unter "open", "wep", "psk" oder "8021x") und die Signalstärke sehen. Im nächsten Abschnitt werden wir versuchen, eine Verbindung zu einem dieser Netzwerke herzustellen.
Herstellen einer Verbindung mit einem drahtlosen Netzwerk
Im vorherigen Beispiel haben wir gesehen, wie man die Liste der verfügbaren Netzwerkverbindungen erhält, jetzt versuchen wir, eine Verbindung zu einer herzustellen. Wie wir in der Ausgabe sehen können, die im vorherigen Beispiel zurückgegeben wurde, sind beide verfügbaren Netzwerke durch einen psk (Pre-Shared-Key) geschützt, daher sollten wir, um eine Verbindung zu einem von ihnen herzustellen, iwctl mit der Option --passphrase ausführen und die Passphrase als Argument angeben. Sehen wir uns ein Beispiel an. Angenommen, ich möchte eine Verbindung zum "arda " -Netzwerk herstellen. Das ist der Befehl, den ich ausführen würde:
iwctl station wlan0 connect arda --passphrase mysupersecretpassphraseUm zu überprüfen, ob die Verbindung jetzt aktiv ist, können wir den folgenden Befehl ausführen:
iwctl station wlan0 showIn diesem Fall würden wir die folgende Ausgabe erhalten:
Station: wlan0
--------------------------------------------------------------------------------
Settable Property Value
--------------------------------------------------------------------------------
Scanning no
State connected
Connected network arda
ConnectedBss 10:13:31:53:26:11
Frequency 2462
Security WPA2-Personal
RSSI -77 dBm
AverageRSSI -76 dBm
TxMode 802.11n
TxMCS 5
TxBitrate 52000 Kbit/s
RxBitrate 1000 Kbit/s
ExpectedThroughput 27375 Kbit/s
Wir können sehen, dass die Verbindung jetzt aktiv ist. Wenn wir jedoch versuchen, zu einem bestimmten Ort zu navigieren oder einfach eine externe Adresse anzupingen, scheitern wir. Warum? Das liegt daran, dass wir zwar eine Verbindung zum Access Point hergestellt haben, der Schnittstelle aber keine IP-Adresse zugewiesen haben und weder ein Gateway noch eine DNS-Serveradresse dafür eingerichtet haben. Wir können diese Parameter statisch einstellen oder sie vom DHCP-Server beziehen, der in unseren Router integriert ist. In diesem Fall verwenden wir die letztere Option.
Um eine dhcp-Konfiguration unter Linux zu erhalten, verwenden wir normalerweise einen Client wie dhcpcd; Iwd hat jedoch einen DHCP-Client integriert, der standardmäßig deaktiviert ist. Um es zu aktivieren, müssen wir die folgenden Zeilen in die iwd-Konfigurationsdatei eingeben: /etc/iwd/main.conf (die Datei existiert möglicherweise standardmäßig nicht):
[General]
EnableNetworkConfiguration=true
Nachdem wir die Konfigurationsdatei gespeichert haben, müssen wir nur noch den Daemon neu starten, und die Verbindung sollte automatisch für uns konfiguriert werden:
sudo systemctl restart iwdTrennen der Verbindung zu einem Netzwerk
Was ist, wenn wir eine derzeit aktive Verbindung beenden möchten? Der Befehl, den wir verwenden würden, um eine solche Aufgabe auszuführen, ist sehr einfach. Im vorherigen Beispiel haben wir uns mit dem Netzwerk "arda" verbunden. Um die Verbindung zu trennen, würden wir Folgendes ausführen:
iwctl station wlan0 disconnectAbrufen einer Liste der bekannten Verbindungen
Der iwd-Dienst verfolgt bequem die bekannte Verbindung. Um die Liste von ihnen zu erhalten, können wir den folgenden Befehl starten:
iwctl known-networks listIn diesem Fall haben wir uns nur mit einem Netzwerk verbunden, das wie erwartet in der Ausgabe des Befehls gemeldet wird:
Known Networks
--------------------------------------------------------------------------------
Name Security Hidden Last connected
--------------------------------------------------------------------------------
arda psk Oct 16, 1:15 PM
Wenn wir das nächste Mal eine Verbindung zum Netzwerk herstellen, müssen wir Informationen wie die Passhprase nicht erneut bereitstellen. Iwd speichert Verbindungsinformationen im Verzeichnis /var/lib/iwd. Alle Netzwerkdaten werden in einer dedizierten Datei gespeichert, die mit der Vorlage name.security_type benannt wird. In diesem Fall wäre die Konfigurationsdatei für das Netzwerk "arda" daher: /var/lib/iwd/arda.psk.
Wenn wir aus irgendeinem Grund möchten, dass der iwd-Dienst ein bestimmtes Netzwerk vergisst, müssen wir nur den Befehl iwctl known-networks erneut starten, diesmal mit der Aktion forget. Um den Dienst zum Beispiel das Netzwerk "arda " vergessen zu lassen, würden wir Folgendes ausführen:
iwctl known-networks arda forgetSchlüsse
In diesem Tutorial haben wir über iwd gesprochen, den von Intel für Linux entwickelten iNet Wireless Daemon. Wir haben gelernt, wie man es auf einigen der am häufigsten verwendeten Linux-Distributionen installiert, wie man den iwd-Daemon mit systemctl startet und aktiviert, wie man das iwctl-Dienstprogramm verwendet, um nach den verfügbaren drahtlosen Netzwerken zu suchen, und wie man sich mit einem geschützten Netzwerk verbindet. Wir haben auch gesehen, wie man den integrierten DHCP-Client aktiviert, wie man die Liste der bekannten Verbindung erhält und schließlich, wie man eine Verbindung vergisst.
