GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Verbinden Sie sich mit Wi-Fi From Terminal auf Ubuntu 18.04/20.04 mit WPA Supplicant

In diesem Tutorial lernen wir, wie man über die Befehlszeile auf Ubuntu 18.04/20.04 Server und Desktop mit wpa_supplicant eine Verbindung zum Wi-Fi-Netzwerk herstellt . In einem modernen drahtlosen Heimnetzwerk wird die Kommunikation mit WPA-PSK (Pre-Shared Key) geschützt, im Gegensatz zu WPA-Enterprise, das für Unternehmensnetzwerke entwickelt wurde. WPA-PSK wird auch als WPA-Personal bezeichnet. wpa_supplicant ist eine Implementierung der WPA-Supplicant-Komponente. Ein Supplicant in Wireless LAN ist eine Client-Software, die auf dem Computer des Endbenutzers installiert ist und authentifiziert werden muss, um einem Netzwerk beizutreten.

Bitte beachten Sie, dass Sie wpa_supplicant installieren müssen Software, bevor Sie sich mit Wi-Fi verbinden, also müssen Sie zuerst eine Verbindung zu Wired Ethernet herstellen, was nur einmal gemacht wird. Wenn dir diese Methode nicht gefällt, sei mir bitte nicht böse. Vielleicht wird Ubuntu eines Tages wpa_supplicant ausliefern bei einer sauberen Installation.

Schritt 1:Finden Sie den Namen Ihrer drahtlosen Schnittstelle und Ihres drahtlosen Netzwerks

Führen Sie iwconfig aus Befehl, um den Namen Ihrer drahtlosen Schnittstelle zu finden.

iwconfig

wlan0 war früher ein gebräuchlicher Name für drahtlose Netzwerkschnittstellen auf Linux-Systemen ohne Systemd. Da Ubuntu Systemd verwendet, werden Sie feststellen, dass Ihre drahtlose Netzwerkschnittstelle so etwas wie wlp4s0 heißt . Sie können auch sehen, dass es derzeit keinem Zugriffspunkt zugeordnet ist.

Wenn Ihre drahtlose Schnittstelle nicht angezeigt wird, müssen Sie sie möglicherweise mit dem folgenden Befehl aufrufen.

sudo ifconfig wlp4s0 up

Suchen Sie dann den Namen Ihres drahtlosen Netzwerks, indem Sie mit dem folgenden Befehl nahe gelegene Netzwerke scannen. Ersetzen Sie wlp4s0 mit Ihrem eigenen drahtlosen Schnittstellennamen. ESSID ist die Netzwerknamenkennung.

sudo iwlist wlp4s0 scan | grep ESSID

Schritt 2:Mit WPA_Supplicant mit dem WLAN-Netzwerk verbinden

Installieren Sie nun wpa_supplicant auf Ubuntu 18.04/20.04 aus dem Standard-Software-Repository.

sudo apt install wpasupplicant

Wir müssen eine Datei namens wpa_supplicant.conf erstellen mit der wpa_passphrase Nützlichkeit. wpa_supplicant.conf ist die Konfigurationsdatei, die alle Netzwerke beschreibt, mit denen sich der Computer verbinden soll. Führen Sie den folgenden Befehl aus, um diese Datei zu erstellen. Ersetzen Sie ESSID und WLAN-Passphrase durch Ihre eigene.

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf

Beachten Sie, dass ich im obigen Screenshot meine ESSID in doppelte Anführungszeichen gesetzt habe, da meine ESSID Leerzeichen enthält.

Die Ausgabe von wpa_passphrase Der Befehl wird an tee geleitet , und dann in /etc/wpa_supplicant.conf geschrieben Datei. Verwenden Sie nun den folgenden Befehl, um Ihre Wireless-Karte mit dem Wireless Access Point zu verbinden.

sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp4s0

Die folgende Ausgabe zeigt an, dass Ihre WLAN-Karte erfolgreich mit einem Zugangspunkt verbunden ist.

Successfully initialized wpa_supplicant
wlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Associated with c5:4a:21:53:ac:eb
wlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP]
wlp4s0: CTRL-EVENT-CONNECTED - Connection to c5:4a:21:53:ac:eb completed [id=0 id_str=]

Beachten Sie, dass Sie Network Manager mit dem folgenden Befehl stoppen müssen, wenn Sie die Ubuntu-Desktop-Edition verwenden, da dies sonst zu Verbindungsproblemen bei der Verwendung von wpa_supplicant führt .

sudo systemctl stop NetworkManager

Deaktivieren Sie den automatischen Start von NetworkManager beim Booten, indem Sie den folgenden Befehl ausführen.

sudo systemctl disable NetworkManager-wait-online NetworkManager-dispatcher NetworkManager

Standardmäßig läuft wpa_supplicant im Vordergrund. Wenn die Verbindung hergestellt ist, öffnen Sie ein weiteres Terminalfenster und führen Sie es aus

iwconfig

Sie können sehen, dass die drahtlose Schnittstelle jetzt mit einem Zugriffspunkt verknüpft ist.

Sie können CTRL+C drücken um den aktuellen wpa_supplicant zu stoppen verarbeiten und im Hintergrund ausführen, indem Sie -B hinzufügen Flagge.

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0

Obwohl wir authentifiziert und mit einem drahtlosen Netzwerk verbunden sind, haben wir noch keine IP-Adresse. Verwenden Sie den folgenden Befehl, um eine private IP-Adresse vom DHCP-Server zu erhalten:

sudo dhclient wlp4s0

Jetzt hat Ihr WLAN-Interface eine private IP-Adresse, die angezeigt werden kann mit:

ip addr show wlp4s0

Jetzt können Sie auf das Internet zugreifen. Um die private IP-Adresse freizugeben, führen Sie

aus
sudo dhclient wlp4s0 -r

Verbinden mit verstecktem Drahtlosnetzwerk

Wenn Ihr drahtloser Router keine ESSID sendet, müssen Sie die folgende Zeile in /etc/wpa_supplicant.conf hinzufügen Datei.

scan_ssid=1

Wie unten:

network={
        ssid="LinuxBabe.Com Network"
        #psk="12345qwert"
        psk=68add4c5fee7dc3d0dac810f89b805d6d147c01e281f07f475a3e0195
        scan_ssid=1
}

Schritt 3:Beim Booten automatisch verbinden

Um beim Booten automatisch eine Verbindung zum drahtlosen Netzwerk herzustellen, müssen wir wpa_supplicant.service bearbeiten Datei. Es ist eine gute Idee, die Datei von /lib/systemd/system/ zu kopieren Verzeichnis nach /etc/systemd/system/ Verzeichnis und bearbeiten Sie dann den Dateiinhalt, da wir keine neuere Version von wpa_supplicant wollen um unsere Änderungen zu überschreiben.

sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

Bearbeiten Sie die Datei mit einem Befehlszeilen-Texteditor wie Nano.

sudo nano /etc/systemd/system/wpa_supplicant.service

Suchen Sie die folgende Zeile.

ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

Ändern Sie es wie folgt. Hier haben wir die Konfigurationsdatei und den Namen der drahtlosen Schnittstelle zum ExecStart hinzugefügt Befehl.

ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant.conf -i wlp4s0

Es wird empfohlen, immer zu versuchen, wpa_supplicant neu zu starten, wenn ein Fehler erkannt wird. Fügen Sie Folgendes direkt unter ExecStart hinzu Linie.

Restart=always

Wenn Sie die folgende Zeile in dieser Datei finden, kommentieren Sie sie aus (fügen Sie das #-Zeichen am Anfang der Zeile hinzu).

Alias=dbus-fi.w1.wpa_supplicant1.service

Speichern und schließen Sie die Datei. (Um eine Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O , und drücken Sie dann Enter bestätigen. Drücken Sie zum Beenden Ctrl+X .) Dann Systemd neu laden.

sudo systemctl daemon-reload

Aktivieren Sie wpa_supplicant Dienst beim Booten starten.

sudo systemctl enable wpa_supplicant.service

Außerdem müssen wir dhclient starten beim Booten, um eine private IP-Adresse vom DHCP-Server zu erhalten. Dies kann erreicht werden, indem eine systemd-Diensteinheit für dhclient erstellt wird .

sudo nano /etc/systemd/system/dhclient.service

Fügen Sie den folgenden Text in die Datei ein.

[Unit]
Description= DHCP Client
Before=network.target
After=wpa_supplicant.service

[Service]
Type=forking
ExecStart=/sbin/dhclient wlp4s0 -v
ExecStop=/sbin/dhclient wlp4s0 -r
Restart=always
 
[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen Dienst.

sudo systemctl enable dhclient.service

So erhalten Sie eine statische IP-Adresse

Wenn Sie eine statische IP-Adresse erhalten möchten, müssen Sie dhclient.service deaktivieren .

sudo systemctl disable dhclient.service

Wir müssen netplan verwenden, um die statische IP-Adresse auf Ubuntu 18.04/20.04 zu konfigurieren. Erstellen Sie eine Konfigurationsdatei unter /etc/netplan/ .

sudo nano /etc/netplan/10-wifi.yaml

Fügen Sie dieser Datei die folgenden Zeilen hinzu. Ersetzen Sie 192.168.0.102 mit Ihrer bevorzugten IP-Adresse. Bitte achten Sie auf die Einkerbung. Ein zusätzliches Leerzeichen würde die Konfiguration ungültig machen.

network:
    ethernets:
        wlp4s0:
            dhcp4: no
            addresses: [192.168.0.102/24]
            gateway4: 192.168.0.1
    version: 2

Speichern und schließen Sie die Datei. Wenden Sie dann die Konfigurationen an.

sudo netplan apply

Sie können auch --debug einschalten Option, wenn es nicht wie erwartet funktioniert.

sudo netplan --debug apply

Wenn es andere .yaml gibt Dateien unter /etc/netplan/ Verzeichnis, dann netplan führt automatisch Konfigurationen aus verschiedenen Dateien zusammen. netplan verwendet systemd-networkd als Back-End-Netzwerk-Renderer. Es wird empfohlen, den wpa_supplicant.service zu konfigurieren läuft vor systemd-networkd.service , sodass das System zuerst eine Verbindung mit einem Wi-Fi-Zugangspunkt herstellt und dann eine private IP-Adresse erhält.

sudo nano /etc/systemd/system/wpa_supplicant.service

Suchen Sie die folgende Zeile.

Before=network.target

Ändern Sie es in:

Before=network.target systemd-networkd.service

Speichern und schließen Sie die Datei.

Eine andere Möglichkeit, eine statische IP-Adresse zu erhalten, besteht darin, sich bei der Verwaltungsoberfläche Ihres Routers anzumelden und der MAC-Adresse Ihrer WLAN-Karte eine statische IP zuzuweisen, sofern Ihr Router diese Funktion unterstützt.

Verwenden eines Hostnamens für den Zugriff auf Dienste unter Ubuntu

Eigentlich müssen Sie keine statische IP-Adresse für Ihre Ubuntu-Box erhalten. Ubuntu kann mDNS (Multicast DNS) verwenden, um seinen Hostnamen im lokalen Netzwerk bekannt zu geben, und Clients können mit diesem Hostnamen auf Dienste auf Ihrer Ubuntu-Box zugreifen. Dieser Hostname kann immer in die IP-Adresse Ihrer Ubuntu-Box aufgelöst werden, auch wenn sich die IP-Adresse ändert.

Um mDNS zu verwenden, müssen Sie avahi-daemon installieren, eine Open-Source-Implementierung von mDNS/DNS-SD.

sudo apt install avahi-daemon

Starten Sie den Dienst.

sudo systemctl start avahi-daemon

Autostart beim Booten aktivieren.

sudo systemctl enable avahi-daemon

Der Avahi-Daemon lauscht auf UDP 5353, also müssen Sie diesen Port in der Firewall öffnen. Wenn Sie UFW verwenden, führen Sie den folgenden Befehl aus.

sudo ufw allow 5353/udp

Dann sollten Sie mit dem hostnamectl einen eindeutigen Hostnamen für Ihre Ubuntu-Box festlegen Befehl. Ersetzen Sie ubuntubox durch Ihren bevorzugten Hostnamen, der nicht bereits von anderen Geräten im lokalen Netzwerk belegt sein sollte.

sudo hostnamectl set-hostname ubuntubox

Starten Sie nun avahi-daemon neu.

sudo systemctl restart avahi-daemon

Wenn Sie den Status mit

überprüfen
systemctl status avahi-daemon

Sie können den mDNS-Hostnamen sehen, der mit .local endet Domäne.

Auf dem Client-Computer müssen Sie außerdem eine mDNS/DNS-SD-Software installieren.

  • Linux-Benutzer sollten avahi-daemon installieren .
  • Windows-Benutzer müssen den Bonjour-Dienst aktivieren, indem sie entweder den Bonjour-Druckdienst oder iTunes installieren.
  • Auf macOS ist Bonjour vorinstalliert.

Jetzt können Sie auf Dienste zugreifen, indem Sie ubuntubox.local verwenden Hostname, sodass die IP-Adresse nicht überprüft und eingegeben werden muss.

WLAN auf Raspberry Pi entsperren

Das Ubuntu ARM OS für Raspberry Pi blockiert standardmäßig die drahtlose Schnittstelle. Sie müssen es entsperren mit:

sudo rfkill unblock wifi

Um es beim Booten zu entsperren, erstellen Sie eine systemd-Service-Unit.

sudo nano /etc/systemd/system/unblock-wifi.service

Fügen Sie die folgenden Zeilen hinzu.

[Unit]
Description=RFKill Unblock WiFi Devices
Requires=wpa_supplicant.service
After=wpa_supplicant.service

[Service]
Type=oneshot
ExecStart=/usr/sbin/rfkill unblock wifi
ExecStop=
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei. Autostart beim Booten aktivieren.

sudo systemctl enable unblock-wifi

Ich habe das unblock-wifi.service gefunden sollte nach dem wpa_supplicant.service laufen startet, sonst kann es WLAN nicht entsperren. Beachten Sie, dass, wenn Sie eine Desktop-Umgebung installiert haben, wahrscheinlich ein Netzwerkmanager läuft, der die Verbindung stören kann. Sie müssen es deaktivieren. Zum Beispiel verwende ich die leichtgewichtige LXQT-Desktopumgebung auf Raspberry Pi (sudo apt install lubuntu-desktop ) und müssen connman.service und NetworkManager.service deaktivieren.

sudo systemctl disable connman.service NetworkManager.service

Empfohlene Lektüre

  • So verwenden Sie Systemd unter Linux – Verwalten Sie Dienste, Ausführungsebenen und Protokolle

Mehrere Wi-Fi-Netzwerke

Die /etc/wpa_supplicant.conf Konfigurationsdatei kann mehrere Wi-Fi-Netzwerke enthalten. wpa_supplicant wählt automatisch das beste Netzwerk aus, basierend auf der Reihenfolge der Netzwerkblöcke in der Konfigurationsdatei, der Netzwerksicherheitsstufe und der Signalstärke.

Um ein zweites Wi-Fi-Netzwerk hinzuzufügen, führen Sie

aus
wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee -a /etc/wpa_supplicant.conf

Beachten Sie, dass Sie den -a verwenden müssen Option mit dem tee Befehl, der das neue WLAN-Netzwerk an die Datei anhängt, anstatt den ursprünglichen Inhalt zu löschen.

Wi-Fi-Sicherheit

Verwenden Sie kein WPA2 TKIP oder WPA2 TKIP+AES als Verschlüsselungsverfahren in Ihrem WLAN-Router. TKIP gilt nicht mehr als sicher. Sie können WPA2-AES verwenden als Verschlüsselungsverfahren.


Ubuntu
  1. Richten Sie die drahtlose Schnittstelle auf Ubuntu ein

  2. So verbinden Sie WLAN vom Terminal unter Ubuntu 16.04

  3. So richten Sie die Protokollrotation mit Logrotate unter Ubuntu 18.04/20.04 ein

  4. Ubuntu – Kopieren Sie einen langen einzeiligen Text von einem Terminal mit unerwünschter Änderungszeile?

  5. Wie verbinde ich mich mit Wps Pin in Ubuntu 14.04 mit WLAN?

2 Möglichkeiten zum Upgrade von Ubuntu 16.04/17.10 auf Ubuntu 18.04 (Grafik &Terminal)

2 Möglichkeiten zum Upgrade von Ubuntu 16.04/17.04 auf Ubuntu 17.10 (Grafik &Terminal)

2 Möglichkeiten zum Upgrade von Ubuntu 18.04 auf 18.10 (GUI &Terminal)

2 Möglichkeiten zum Upgrade von Ubuntu 20.04/20.10 auf 21.04 (GUI &Terminal)

So verbinden Sie sich vom Terminal in Ubuntu Linux mit WLAN

So verbinden Sie sich vom Terminal in Ubuntu Linux mit WLAN