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=1Krok 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ší verziwpa_supplicant
přepsat naše úpravy.sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.serviceUpravte soubor pomocí textového editoru příkazového řádku, jako je Nano.
sudo nano /etc/systemd/system/wpa_supplicant.serviceNajděte následující řádek.
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicantZměň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 wlp4s0Př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=alwaysPokud v tomto souboru najdete následující řádek, zakomentujte jej (na začátek řádku přidejte znak #).
Alias=dbus-fi.w1.wpa_supplicant1.serviceUložte a zavřete soubor. (Chcete-li uložit soubor v textovém editoru Nano, stiskněte
Ctrl+O
a poté stiskněteEnter
potvrdit. Pro ukončení stiskněteCtrl+X
.) Poté znovu načtěte systemd.sudo systemctl daemon-reloadPovolit wpa_supplicant spuštění služby při spouštění.
sudo systemctl enable wpa_supplicant.serviceMusí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 prodhclient
.sudo nano /etc/systemd/system/dhclient.serviceVlož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] .targetUložte a zavřete soubor. Poté tuto službu povolte.
sudo systemctl povolit dhclient.serviceJak získat statickou IP adresu
Pokud chcete získat statickou IP adresu, musíte deaktivovat
dhclient.service
.sudo systemctl zakázat dhclient.serviceKe 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.yamlPř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:2Uložte a zavřete soubor. Poté použijte konfigurace.
použije se sudo netplanMůžete také zapnout
--debug
možnost, pokud nefunguje podle očekávání.použít sudo netplan --debugPokud 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 nakonfigurovatwpa_supplicant.service
běží předsystemd-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.serviceNajděte následující řádek.
Before=network.targetZměňte jej na:
Before=network.target systemd-networkd.serviceUlož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-daemonSpusťte službu.
sudo systemctl spustí avahi-daemonPovolit automatické spouštění při spouštění.
sudo systemctl povolí avahi-daemonAvahi-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/udpPoté 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 ubuntuboxNyní restartujte avahi-daemon.
sudo systemctl restart avahi-daemonPokud zkontrolujete stav pomocí
stav systemctl avahi-daemonmůž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í-wifiZjistil jsem, že
unblock-wifi.service
by měl běžet zawpa_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.serviceDoporuč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í.