Come abilitare il Wi-Fi su Ubuntu Server 20.04 senza una connessione Ethernet cablata

  • di

Quasi ogni personal computer (laptop o desktop) che soddisfa i requisiti minimi di hardware può eseguire il sistema operativo server Linux. Non sorprende che molte persone impostino i loro server domestici su alcuni vecchi ma ancora funzionanti personal computer per l’auto-apprendimento o progetti collaterali.

Una delle opzioni comuni per eseguire un server Linux a casa è quella di accedere al server tramite una rete domestica Wi-Fi esistente. Il software di installazione del server Linux, in generale, non include pacchetti di supporto per la rete wireless, quindi si affida all’utente per abilitare la connessione Wi-Fi.

In questo post, vi mostrerò i passaggi per impostare e configurare l’accesso Wi-Fi utilizzando WPA supplicant e netplan su Ubuntu Server 20..04 senza una connessione ethernet cablata.

Siccome il server non ha una connessione ethernet cablata, è necessario scaricare il pacchetto WPA supplicant (wpasupplicant) e due delle sue dipendenze (libnl-route-3-200, libpcsclite1) su un’altra macchina con una connessione internet, quindi trasferirli sul server utilizzando una chiavetta/un’unità esterna.

wpasupplicant: supporto client per WPA e WPA2 (IEEE 802.11i).

http://mirrors.kernel.org/ubuntu/pool/main/w/wpa/wpasupplicant_2.9-1ubuntu4_amd64.deb

libnl-route-3-200: libreria per gestire le prese netlink – interfaccia route.

http://mirrors.kernel.org/ubuntu/pool/main/libn/libnl3/libnl-route-3-200_3.4.0-1_amd64.deb

libpcsclite1: middleware per accedere ad una smart card usando PC/SC (libreria).

http://mirrors.kernel.org/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.8.26-3_amd64.deb

Potete usare il seguente comando per scaricare i pacchetti se anche un’altra macchina sta eseguendo Ubuntu Server 20..04 e non ha installato il pacchetto WPA supplicant:

sudo apt install -y --download-only wpasupplicant

I file deb di wpasupplicant e le sue dipendenze sono scaricati nella seguente directory per impostazione predefinita:

/var/cache/apt/archives/

Se la macchina sta eseguendo Ubuntu Server 20.04 ma ha già installato il pacchetto WPA supplicant, è possibile utilizzare dpkg-repack per ricreare i file deb:

sudo apt install -y dpkg-repack
sudo dpkg-repack wpasupplicant libnl-route-3–200 libpcsclite1

Ora, copiate questi tre file deb sulla vostra unità flash/esterna.

Step 2: Installare il pacchetto WPA Supplicant

Trovare il nome del dispositivo per l’unità flash/esterna (es. chiavetta USB) dopo averla inserita nel server:

sudo fdisk -f

Un disco flash USB è solitamente elencato in:

/dev/sdb1

Crea una nuova directory e monta il disco flash/esterno:

sudo mkdir /media/usb
sudo mount -t vfat /dev/sdb1 /media/usb

Installare il pacchetto WPA supplicant e le sue dipendenze:

cd /media/usb
sudo dpkg -i libnl-route-3–200_3.4.0–1_amd64.deb \
libpcsclite1_1.8.26–3_amd64.deb \
wpasupplicant_2.9–1ubuntu4_amd64.deb

Step 3: Trovare il nome dell’interfaccia wireless

Il kernel Linux elenca i nomi delle interfacce di rete tramite link simbolici in /sys/class/net, mentre le interfacce di rete wireless sono chiamate wlp2s0wlp3s0 e così via:

ls /sys/class/net | grep -i wlp

Ci sono molte opzioni alternative per trovare l’interfaccia wireless in Linux. Ne elenco alcuni esempi qui sotto:

# Use ip command: ip link or ip addr
ip link show | grep -i wlp | awk -F: '{print $2}' | xargs
ip addr show | grep -i wlp | awk -F: '{print $2}' | xargs# Use iw tool
iw dev | awk '$1=="Interface" {print $2}'# Use lshw to check wireless adapters
sudo lshw -C network \
| awk '/Wireless interface/,/logical name/ {print $3}' \
| tail -1

Passo 4: Creare un file di configurazione NetPlan

Per configurare netplan, fare una copia del file di configurazione esistente, quindi crearne uno nuovo sotto /etc/netplan/ con estensione .yaml:

sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00.bak
sudo vim /etc/netplan/00-installer-config.yaml

Per permettere all’interfaccia wireless chiamata wlp2s0 di ottenere un indirizzo IP tramite DHCP, modificare il file YAML come segue:

network:
ethernetes: {}
wifis:
wlp2s0:
dhcp4: true
optional:true
access-points:
"network_ssid_name":
password: "**********"
version: 2
renderer: networkd

Per impostare invece un indirizzo IP statico:

network:
ethernetes: {}
wifis:
wlp2s0:
dhcp4: no
dhcp6: no
optional:true
addresses:
gateway4: 192.168.1.1
nameservers:
addresses:
access-points:
"network_ssid_name":
password: "**********"
version: 2
renderer: networkd

Regolare il nome dell’interfaccia wireless, l’indirizzo IP statico, il gateway, i name server e l’SSID/password Wi-Fi come richiesto.

Nota le dichiarazioni chiave optional: true che permettono l’avvio senza aspettare che queste interfacce si attivino completamente.

Passo 5: Applicare la configurazione di Netplan

Una volta finito di modificare il file YAML di netplan, genera la configurazione del backend da esso e controlla se la configurazione fornita soddisfa gli standard definiti:

sudo netplan --debug generate

Se tutto è in ordine, applica la configurazione fornita per l’uso:

sudo netplan apply

Ora, riavviare il server:

sudo reboot

Note finali

Se il nome dell’interfaccia wireless non viene visualizzato, l’adattatore wireless potrebbe non essere stato riconosciuto come dispositivo di rete del server. Potete andare sul sito di aiuto di Ubuntu per ottenere informazioni specifiche per la risoluzione dei problemi:

https://help.ubuntu.com/stable/ubuntu-help/net-wireless-troubleshooting-hardware-check.html.en

Il file netplan YAML è molto pignolo riguardo l’indentazione, la spaziatura e l’assenza di tabulazioni. Vedi il seguente link per ulteriore aiuto:

https://netplan.io/examples

Assicurati di inserire il corretto SSID Wi-Fi e la password nel file netplan YAML. Il comando netplan apply avrà successo, ma l’interfaccia wireless non sarà attiva se si fornisce un SSID Wi-Fi o una password errati.

Grazie per aver letto!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *