GNU/Linux >> Znalost Linux >  >> Ubuntu

Připojte se k Wi-Fi z terminálu na Ubuntu 18.04/20.04 s WPA Supplicant

V tomto tutoriálu se naučíme, jak se připojit k síti Wi-Fi z příkazového řádku na serveru a ploše Ubuntu 18.04/20.04 pomocí wpa_supplicant . V moderní domácí bezdrátové síti je komunikace chráněna pomocí WPA-PSK (předsdílený klíč) na rozdíl od WPA-Enterprise, který je určen pro podnikové sítě. WPA-PSK je také známý jako WPA-Personal. wpa_supplicant je implementace komponenty WPA supplicant. Žadatel v bezdrátové síti LAN je klientský software nainstalovaný na počítači koncového uživatele, který musí být ověřen, aby se mohl připojit k síti.

Upozorňujeme, že budete muset nainstalovat wpa_supplicant software před připojením k Wi-Fi, takže se musíte nejprve připojit ke kabelovému Ethernetu, což se provádí pouze jednou. Pokud se vám tato metoda nelíbí, nezlobte se na mě. Možná jednoho dne Ubuntu dodá wpa_supplicant v čisté instalaci.

Krok 1:Najděte název svého bezdrátového rozhraní a bezdrátové sítě

Spusťte iwconfig k nalezení názvu vašeho bezdrátového rozhraní.

iwconfig

wlan0 býval běžný název pro bezdrátové síťové rozhraní v systémech Linux bez Systemd. Protože Ubuntu používá Systemd, zjistíte, že vaše bezdrátové síťové rozhraní se jmenuje něco jako wlp4s0 . Můžete také vidět, že právě teď není přidružen k žádnému přístupovému bodu.

Pokud se vaše bezdrátové rozhraní nezobrazuje, možná ho budete muset vyvolat pomocí následujícího příkazu.

sudo ifconfig wlp4s0 up

Poté vyhledejte název své bezdrátové sítě prohledáním okolních sítí pomocí příkazu níže. Nahraďte wlp4s0 s vaším vlastním názvem bezdrátového rozhraní. ESSID je identifikátor názvu sítě.

skenování sudo iwlist wlp4s0 | grep ESSID

Krok 2:Připojte se k síti Wi-Fi pomocí WPA_Supplicant

Nyní nainstalujte wpa_supplicant na Ubuntu 18.04/20.04 z výchozího úložiště softwaru.

sudo apt install wpasupplicant

Potřebujeme vytvořit soubor s názvem wpa_supplicant.conf pomocí wpa_passphrase užitečnost. wpa_supplicant.conf je konfigurační soubor popisující všechny sítě, ke kterým se uživatel chce, aby se počítač připojoval. Spusťte následující příkaz k vytvoření tohoto souboru. Nahraďte ESSID a přístupovou frázi Wi-Fi vlastní.

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

Všimněte si, že na výše uvedeném snímku obrazovky jsem svůj ESSID zabalil do uvozovek, protože můj ESSID obsahuje mezery.

Výstup wpa_passphrase příkaz bude přesměrován do tee a poté zapsán do /etc/wpa_supplicant.conf soubor. Nyní pomocí následujícího příkazu připojte bezdrátovou kartu k bezdrátovému přístupovému bodu.

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

Následující výstup indikuje, že vaše bezdrátová karta je úspěšně připojena k přístupovému bodu.

Úspěšně inicializováno wpa_supplicantwlp4s0:SME:Pokus o ověření pomocí c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)wlp4s0:Pokus o spojení s c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)wlp4s0:Přidruženo k c5:4a:21:53:ac:eb wlp4s0:CTRL-EVENT-SUBNET-STATUS-UPDATE status=0wlp4s0:WPA:Vyjednávání klíčů dokončeno pomocí c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP]wlp4s0:CTRL-EVENT-CONNECTED - Připojení k c5:4a:21:53:ac:eb dokončeno [id=0 id_str=]

Všimněte si, že pokud používáte edici Ubuntu pro stolní počítače, musíte Správce sítě zastavit pomocí následujícího příkazu, jinak to způsobí problém s připojením při použití wpa_supplicant .

sudo systemctl stop NetworkManager

A deaktivujte automatické spouštění NetworkManageru při spouštění spuštěním následujícího příkazu.

sudo systemctl zakázat NetworkManager-wait-online NetworkManager-dispatcher NetworkManager

Ve výchozím nastavení běží wpa_supplicant v popředí. Pokud je připojení dokončeno, otevřete další okno terminálu a spusťte

iwconfig

Můžete vidět, že bezdrátové rozhraní je nyní spojeno s přístupovým bodem.

Můžete stisknout CTRL+C k zastavení aktuálního wpa_supplicant proces a spusťte jej na pozadí přidáním -B vlajka.

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

Přestože jsme ověřeni a připojeni k bezdrátové síti, zatím nemáme IP adresu. Chcete-li získat soukromou IP adresu ze serveru DHCP, použijte následující příkaz:

sudo dhclient wlp4s0

Nyní má vaše bezdrátové rozhraní soukromou IP adresu, kterou lze zobrazit pomocí:

ip addr show wlp4s0

Nyní máte přístup k internetu. Chcete-li uvolnit soukromou IP adresu, spusťte

sudo dhclient wlp4s0 -r

Připojování ke skryté bezdrátové síti

Pokud váš bezdrátový router nevysílá ESSID, musíte přidat následující řádek do /etc/wpa_supplicant.conf soubor.

scan_ssid=1

Jako níže:

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

Krok 3:Automatické připojení při spouštění

Abychom se při spouštění automaticky připojili k bezdrátové síti, musíme upravit wpa_supplicant.service soubor. Je dobré zkopírovat soubor z /lib/systemd/system/ adresář do /etc/systemd/system/ adresář a poté upravte obsah souboru, protože nechceme novější verzi wpa_supplicant přepsat naše úpravy.

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

Upravte soubor pomocí textového editoru příkazového řádku, jako je Nano.

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

Najděte následující řádek.

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

Změňte jej na následující. Zde jsme přidali konfigurační soubor a název bezdrátového rozhraní do ExecStart příkaz.

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

Při zjištění selhání se doporučuje vždy zkusit restartovat wpa_supplicant. Přidejte následující přímo pod ExecStart řádek.

Restart=always

Pokud v tomto souboru najdete následující řádek, zakomentujte jej (na začátek řádku přidejte znak #).

Alias=dbus-fi.w1.wpa_supplicant1.service

Uložte a zavřete soubor. (Chcete-li uložit soubor v textovém editoru Nano, stiskněte Ctrl+O a poté stiskněte Enter potvrdit. Pro ukončení stiskněte Ctrl+X .) Poté znovu načtěte systemd.

sudo systemctl daemon-reload

Povolit wpa_supplicant spuštění služby při spouštění.

sudo systemctl enable wpa_supplicant.service

Musíme také spustit dhclient při spouštění, abyste získali soukromou IP adresu ze serveru DHCP. Toho lze dosáhnout vytvořením systémové servisní jednotky pro dhclient .

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

Vložte do souboru následující text.

[Unit]Description=DHCP ClientBefore=network.targetAfter=wpa_supplicant.service[Service]Type=forkingExecStart=/sbin/dhclient wlp4s0 -vExecStop=/sbin/dhclient wlp4s0 -rRestart=vždy [Install=multi] .target

Uložte a zavřete soubor. Poté tuto službu povolte.

sudo systemctl povolit dhclient.service

Jak získat statickou IP adresu

Pokud chcete získat statickou IP adresu, musíte deaktivovat dhclient.service .

sudo systemctl zakázat dhclient.service

Ke konfiguraci statické IP adresy na Ubuntu 18.04/20.04 musíme použít netplan. Vytvořte konfigurační soubor pod /etc/netplan/ .

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

Přidejte do tohoto souboru následující řádky. Nahraďte 192.168.0.102 s vaší preferovanou IP adresou. Dávejte pozor na odsazení. Mezera navíc by způsobila neplatnost konfigurace.

síť:ethernety:wlp4s0:dhcp4:žádné adresy:[192.168.0.102/24] brána4:192.168.0.1 verze:2

Uložte a zavřete soubor. Poté použijte konfigurace.

použije se sudo netplan

Můžete také zapnout --debug možnost, pokud nefunguje podle očekávání.

použít sudo netplan --debug

Pokud existují další .yaml soubory pod /etc/netplan/ adresář a poté netplan automaticky sloučí konfigurace z různých souborů. netplan používá systemd-networkd jako backendový síťový renderer. Doporučuje se nakonfigurovat wpa_supplicant.service běží před systemd-networkd.service , takže se systém nejprve připojí k přístupovému bodu Wi-Fi a poté získá soukromou IP adresu.

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

Najděte následující řádek.

Before=network.target

Změňte jej na:

Before=network.target systemd-networkd.service

Uložte a zavřete soubor.

Dalším způsobem, jak získat statickou IP adresu, je přihlášení do rozhraní pro správu routeru a přiřazení statické IP adresy MAC vaší bezdrátové kartě, pokud router tuto funkci podporuje.

Používání názvu hostitele pro přístup ke službám na Ubuntu

Ve skutečnosti nemusíte pro svůj box Ubuntu získávat statickou IP adresu. Ubuntu může používat mDNS (Multicast DNS) k oznámení názvu hostitele do místní sítě a klienti mohou přistupovat ke službám na vašem boxu Ubuntu s tímto názvem hostitele. Tento název hostitele lze vždy přeložit na IP adresu vašeho boxu Ubuntu, i když se IP adresa změní.

Abyste mohli používat mDNS, musíte si nainstalovat avahi-daemon, což je open source implementace mDNS/DNS-SD.

sudo apt install avahi-daemon

Spusťte službu.

sudo systemctl spustí avahi-daemon

Povolit automatické spouštění při spouštění.

sudo systemctl povolí avahi-daemon

Avahi-daemon naslouchá na UDP 5353, takže musíte otevřít tento port ve firewallu. Pokud používáte UFW, spusťte následující příkaz.

sudo ufw povolit 5353/udp

Poté byste měli pro svůj Ubuntu box nastavit jedinečný název hostitele pomocí hostnamectl příkaz. Nahraďte ubuntubox svým preferovaným názvem hostitele, který by již neměla přijímat jiná zařízení v místní síti.

sudo hostnamectl set-hostname ubuntubox

Nyní restartujte avahi-daemon.

sudo systemctl restart avahi-daemon

Pokud zkontrolujete stav pomocí

stav systemctl avahi-daemon

můžete vidět název hostitele mDNS, který končí na .local doména.

Na klientském počítači musíte také nainstalovat software mDNS/DNS-SD.

  • Uživatelé Linuxu by si měli nainstalovat avahi-daemon .
  • Uživatelé systému Windows musí povolit službu Bonjour buď instalací tiskové služby Bonjour, nebo instalací iTunes.
  • V systému macOS je Bonjour předinstalovaný.

Nyní můžete přistupovat ke službám pomocí ubuntubox.local hostname, což eliminuje potřebu kontrolovat a zadávat IP adresu.

Odblokujte Wifi na Raspberry Pi

Ubuntu ARM OS pro Raspberry Pi ve výchozím nastavení blokuje bezdrátové rozhraní. Musíte jej odblokovat pomocí:

sudo rfkill odblokování wifi

Chcete-li jej odblokovat při spouštění, vytvořte servisní jednotku systemd.

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

Přidejte k tomu následující řádky.

[Unit]Description=RFKill Unblock WiFi DevicesRequires=wpa_supplicant.serviceAfter=wpa_supplicant.service[Service]Type=oneshotExecStart=/usr/sbin/rfkill unblock wifiExecStop=RemainAfterExit=yes[Install]Wanted-Byer=/před> 

Uložte a zavřete soubor. Povolit automatické spouštění při spouštění.

sudo systemctl povolit odblokování-wifi

Zjistil jsem, že unblock-wifi.service by měl běžet za wpa_supplicant.service spustí, jinak nemůže odblokovat wifi. Všimněte si, že pokud jste nainstalovali desktopové prostředí, pravděpodobně je spuštěn správce sítě, který může narušovat připojení. Musíte to zakázat. Já například používám odlehčené desktopové prostředí LXQT na Raspberry Pi (sudo apt install lubuntu-desktop ) a je třeba zakázat connman.service a NetworkManager.service.

sudo systemctl zakázat connman.service NetworkManager.service

Doporučená četba

  • Jak používat Systemd v systému Linux – správa služeb, úrovní běhu a protokolů

Více sítí Wi-Fi

Soubor /etc/wpa_supplicant.conf konfigurační soubor může obsahovat více sítí Wi-Fi. wpa_supplicant automaticky vybere nejlepší síť na základě pořadí síťových bloků v konfiguračním souboru, úrovně zabezpečení sítě a síly signálu.

Chcete-li přidat druhou síť Wi-Fi, spusťte

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

Všimněte si, že musíte použít -a možnost s tee příkaz, který k souboru místo smazání původního obsahu připojí novou Wifi síť.

Zabezpečení Wi-Fi

Nepoužívejte WPA2 TKIP nebo WPA2 TKIP+AES jako metoda šifrování ve vašem Wi-Fi routeru. TKIP již není považován za bezpečný. Můžete použít WPA2-AES jako metoda šifrování.


Ubuntu
  1. Nastavení bezdrátového rozhraní na Ubuntu

  2. Ubuntu – Kopírovat dlouhý jednořádkový text z terminálu s nežádoucí změnou řádku?

  3. Jak se připojit k Wifi pomocí Wps Pin v Ubuntu 14.04?

  1. Jak připojit WiFi z terminálu na Ubuntu 16.04

  2. Jak nastavit rotaci protokolu pomocí Logrotate na Ubuntu 18.04/20.04

  3. Jak nainstalovat Dropbox na Ubuntu 18.04/20.04 (Terminál/GUI)

  1. Jak se připojit k WiFi z terminálu na Ubuntu 20.04

  2. Jak nainstalovat GIMP na Ubuntu 18.04/20.04

  3. Ovládání jasu obrazovky z terminálu Ubuntu