GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Connettiti al Wi-Fi dal terminale su Ubuntu 18.04/20.04 con WPA Supplicant

In questo tutorial impareremo come connetterci alla rete Wi-Fi dalla riga di comando su server e desktop Ubuntu 18.04/20.04 usando wpa_supplicant . In una moderna rete wireless domestica, le comunicazioni sono protette con WPA-PSK (chiave precondivisa) al contrario di WPA-Enterprise, progettato per le reti aziendali. WPA-PSK è anche noto come WPA-Personale. wpa_supplicant è un'implementazione del componente supplicant WPA. Un supplicant in LAN wireless è un software client installato sul computer dell'utente finale che deve essere autenticato per poter entrare in una rete.

Tieni presente che dovrai installare wpa_supplicant software prima di connetterti al Wi-Fi, quindi devi prima connetterti a Ethernet cablata, che viene eseguita solo una volta. Se non ti piace questo metodo, per favore non essere arrabbiato con me. Forse un giorno Ubuntu spedirà wpa_supplicant su un'installazione pulita.

Fase 1:trova il nome dell'interfaccia wireless e della rete wireless

Esegui iwconfig comando per trovare il nome della tua interfaccia wireless.

iwconfig

wlan0 era un nome comune per l'interfaccia di rete wireless su sistemi Linux senza Systemd. Poiché Ubuntu utilizza Systemd, scoprirai che la tua interfaccia di rete wireless ha un nome simile a wlp4s0 . Puoi anche vedere che al momento non è associato ad alcun punto di accesso.

Se la tua interfaccia wireless non viene mostrata, forse devi aprirla con il seguente comando.

sudo ifconfig wlp4s0 up

Quindi trova il nome della tua rete wireless scansionando le reti vicine con il comando seguente. Sostituisci wlp4s0 con il proprio nome di interfaccia wireless. ESSID è l'identificatore del nome della rete.

sudo iwlist wlp4s0 scan | grep ESSID

Fase 2:connettiti alla rete Wi-Fi con WPA_Supplicant

Ora installa wpa_supplicant su Ubuntu 18.04/20.04 dal repository software predefinito.

sudo apt install wpasupplicant

Dobbiamo creare un file denominato wpa_supplicant.conf usando il wpa_passphrase utilità. wpa_supplicant.conf è il file di configurazione che descrive tutte le reti a cui l'utente desidera che il computer si connetta. Eseguire il comando seguente per creare questo file. Sostituisci ESSID e passphrase Wi-Fi con la tua.

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

Nota che nello screenshot sopra, ho racchiuso il mio ESSID tra virgolette, perché il mio ESSID contiene spazi bianchi.

L'output di wpa_passphrase il comando verrà inviato a tee , e quindi scritto in /etc/wpa_supplicant.conf file. Ora usa il comando seguente per connettere la tua scheda wireless al punto di accesso wireless.

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

Il seguente output indica che la tua scheda wireless è connessa correttamente a un punto di accesso.

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=]

Nota che se stai utilizzando l'edizione desktop di Ubuntu, devi interrompere Network Manager con il comando seguente, altrimenti causerà un problema di connessione quando usi wpa_supplicant .

sudo systemctl stop NetworkManager

E disabilita l'avvio automatico di NetworkManager all'avvio eseguendo il comando seguente.

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

Per impostazione predefinita, wpa_supplicant viene eseguito in primo piano. Se la connessione è completata, apri un'altra finestra del terminale ed esegui

iwconfig

Puoi vedere che l'interfaccia wireless è ora associata a un punto di accesso.

Puoi premere CTRL+C per interrompere l'attuale wpa_supplicant elaboralo ed eseguilo in background aggiungendo il -B bandiera.

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

Sebbene siamo autenticati e connessi a una rete wireless, non abbiamo ancora un indirizzo IP. Per ottenere un indirizzo IP privato dal server DHCP, utilizzare il comando seguente:

sudo dhclient wlp4s0

Ora la tua interfaccia wireless ha un indirizzo IP privato, che può essere mostrato con:

ip addr show wlp4s0

Ora puoi accedere a Internet. Per rilasciare l'indirizzo IP privato, esegui

sudo dhclient wlp4s0 -r

Connessione a una rete wireless nascosta

Se il tuo router wireless non trasmette ESSID, devi aggiungere la seguente riga in /etc/wpa_supplicant.conf file.

scan_ssid=1

Come di seguito:

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

Passaggio 3:connessione automatica all'avvio

Per connetterci automaticamente alla rete wireless all'avvio, dobbiamo modificare il wpa_supplicant.service file. È una buona idea copiare il file da /lib/systemd/system/ directory in /etc/systemd/system/ directory, quindi modifica il contenuto del file, perché non vogliamo una versione più recente di wpa_supplicant per ignorare le nostre modifiche.

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

Modifica il file con un editor di testo da riga di comando, come Nano.

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

Trova la riga seguente.

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

Cambialo come segue. Qui abbiamo aggiunto il file di configurazione e il nome dell'interfaccia wireless a ExecStart comando.

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

Si consiglia di provare sempre a riavviare wpa_supplicant quando viene rilevato un errore. Aggiungi quanto segue subito sotto ExecStart linea.

Restart=always

Se riesci a trovare la riga seguente in questo file, commentala (aggiungi il carattere # all'inizio della riga).

Alias=dbus-fi.w1.wpa_supplicant1.service

Salva e chiudi il file. (Per salvare un file nell'editor di testo Nano, premi Ctrl+O , quindi premi Enter per confermare. Per uscire, premi Ctrl+X .) Quindi ricarica systemd.

sudo systemctl daemon-reload

Abilita wpa_supplicant servizio da avviare all'avvio.

sudo systemctl enable wpa_supplicant.service

Dobbiamo anche avviare dhclient all'avvio per ottenere un indirizzo IP privato dal server DHCP. Questo può essere ottenuto creando un'unità di servizio systemd per dhclient .

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

Inserisci il seguente testo nel file.

[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

Salva e chiudi il file. Quindi abilita questo servizio.

sudo systemctl enable dhclient.service

Come ottenere un indirizzo IP statico

Se vuoi ottenere un indirizzo IP statico, devi disabilitare dhclient.service .

sudo systemctl disable dhclient.service

Dobbiamo usare netplan per configurare l'indirizzo IP statico su Ubuntu 18.04/20.04. Crea un file di configurazione in /etc/netplan/ .

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

Aggiungi le seguenti righe a questo file. Sostituisci 192.168.0.102 con il tuo indirizzo IP preferito. Si prega di fare attenzione al rientro. Uno spazio in più renderebbe la configurazione non valida.

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

Salva e chiudi il file. Quindi applica le configurazioni.

sudo netplan apply

Puoi anche attivare --debug opzione se non funziona come previsto.

sudo netplan --debug apply

Se sono presenti altri .yaml file in /etc/netplan/ directory, quindi netplan unirà automaticamente le configurazioni di file diversi. netplan utilizza systemd-networkd come renderer di rete back-end. Si consiglia di configurare wpa_supplicant.service viene eseguito prima di systemd-networkd.service , quindi il sistema si assocerà prima a un punto di accesso Wi-Fi, quindi otterrà un indirizzo IP privato.

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

Trova la riga seguente.

Before=network.target

Cambialo in:

Before=network.target systemd-networkd.service

Salva e chiudi il file.

Un altro modo per ottenere un indirizzo IP statico è accedere all'interfaccia di gestione del router e assegnare un IP statico all'indirizzo MAC della scheda wireless, se il router supporta questa funzione.

Utilizzo di un nome host per accedere ai servizi su Ubuntu

In realtà, non devi ottenere un indirizzo IP statico per il tuo box Ubuntu. Ubuntu può utilizzare mDNS (Multicast DNS) per annunciare il suo nome host alla rete locale e i client possono accedere ai servizi sulla tua macchina Ubuntu con quel nome host. Questo nome host può sempre essere risolto nell'indirizzo IP della tua casella Ubuntu, anche se l'indirizzo IP cambia.

Per utilizzare mDNS, devi installare avahi-daemon, che è un'implementazione open source di mDNS/DNS-SD.

sudo apt install avahi-daemon

Avvia il servizio.

sudo systemctl start avahi-daemon

Abilita l'avvio automatico all'avvio.

sudo systemctl enable avahi-daemon

Avahi-daemon è in ascolto su UDP 5353, quindi è necessario aprire questa porta nel firewall. Se usi UFW, esegui il comando seguente.

sudo ufw allow 5353/udp

Quindi dovresti impostare un nome host univoco per il tuo box Ubuntu con hostnamectl comando. Sostituisci ubuntubox con il tuo nome host preferito, che non dovrebbe essere già preso da altri dispositivi nella rete locale.

sudo hostnamectl set-hostname ubuntubox

Ora riavvia avahi-daemon.

sudo systemctl restart avahi-daemon

Se controlli lo stato con

systemctl status avahi-daemon

puoi vedere il nome host mDNS, che termina con .local dominio.

Sul computer client, devi anche installare un software mDNS/DNS-SD.

  • Gli utenti Linux dovrebbero installare avahi-daemon .
  • Gli utenti Windows devono abilitare il servizio Bonjour installando il servizio di stampa Bonjour o installando iTunes.
  • Su macOS, Bonjour è preinstallato.

Ora puoi accedere ai servizi utilizzando ubuntubox.local hostname, eliminando la necessità di controllare e digitare l'indirizzo IP.

Sblocca il Wi-Fi su Raspberry Pi

Il sistema operativo Ubuntu ARM per Raspberry Pi blocca l'interfaccia wireless per impostazione predefinita. Devi sbloccarlo con:

sudo rfkill unblock wifi

Per sbloccarlo all'avvio, crea un'unità di servizio systemd.

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

Aggiungi le seguenti righe.

[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

Salva e chiudi il file. Abilita l'avvio automatico all'avvio.

sudo systemctl enable unblock-wifi

Ho scoperto che il unblock-wifi.service dovrebbe essere eseguito dopo il wpa_supplicant.service si avvia, altrimenti non può sbloccare il wifi. Tieni presente che se hai installato un ambiente desktop, probabilmente è in esecuzione un gestore di rete che può interferire con la connessione. Devi disabilitarlo. Ad esempio, utilizzo l'ambiente desktop leggero LXQT su Raspberry Pi (sudo apt install lubuntu-desktop ) e devi disabilitare connman.service e NetworkManager.service.

sudo systemctl disable connman.service NetworkManager.service

Lettura consigliata

  • Come utilizzare Systemd su Linux:gestione di servizi, livelli di esecuzione e registri

Più reti Wi-Fi

Il /etc/wpa_supplicant.conf il file di configurazione può includere più reti Wi-Fi. wpa_supplicant selezionerà automaticamente la rete migliore in base all'ordine dei blocchi di rete nel file di configurazione, al livello di sicurezza della rete e alla potenza del segnale.

Per aggiungere una seconda rete Wi-Fi, esegui

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

Nota che devi usare il -a opzione con il tee comando, che aggiungerà, invece di eliminare il contenuto originale, la nuova rete Wi-Fi al file.

Sicurezza Wi-Fi

Non utilizzare TKIP WPA2 o TKIP WPA2+AES come metodo di crittografia nel router Wi-Fi. TKIP non è più considerato sicuro. Puoi utilizzare WPA2-AES come metodo di crittografia.


Ubuntu
  1. Configurazione dell'interfaccia wireless su Ubuntu

  2. Come connettere il WiFi dal terminale su Ubuntu 16.04

  3. Come impostare la rotazione del registro con Logrotate su Ubuntu 18.04/20.04

  4. Ubuntu:copiare un lungo testo a riga singola da un terminale con una riga di cambio indesiderata?

  5. Come connettersi al Wi-Fi con Wps Pin in Ubuntu 14.04?

2 modi per eseguire l'aggiornamento da Ubuntu 16.04/17.10 a Ubuntu 18.04 (grafica e terminale)

2 modi per eseguire l'aggiornamento da Ubuntu 16.04/17.04 a Ubuntu 17.10 (grafica e terminale)

2 modi per eseguire l'aggiornamento da Ubuntu 18.04 a 18.10 (GUI e terminale)

2 modi per aggiornare Ubuntu 20.04/20.10 a 21.04 (GUI e terminale)

Come connettersi al WiFi dal terminale in Ubuntu Linux

Come connettersi al WiFi dal terminale in Ubuntu Linux