Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento. |
Indice
Guida verificata con Ubuntu: 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
In questa guida generica sono contenute le informazioni per connettersi ad una rete Wi-Fi tramite riga di comando.
Tali operazioni possono risultare utili in varie situazioni, tra cui:
in sistemi server, installazioni minimali ecc.
qualora non fosse possibile utilizzare strumenti con interfacce grafiche, quali Networkmanager, Wicd o Wifi Radar (ad esempio qualora sia impossibile accedere alla sessione grafica in seguito a malfunzionamenti).
Connessione da riga di comando
Preparativi
La prima operazione da effettuare è configurare il proprio router wireless. A tale scopo è sempre utile consultare la manualistica del modello utilizzato. Nel dettaglio, fra le altre cose, dovranno essere impostati:
ESSID: è in pratica il nome identificativo della rete wireless.
Server DHCP: nei casi più comuni, è bene impostare l'assegnamento automatico degli indirizzi di rete ai client connessi alla rete.
Politiche di sicurezza: oltre alla generazione di una password sicura (a tal fine si consiglia la consultazione di questa pagina), occorre impostare lo standard desiderato, ossia WEP, WPA o WPA2.
Per garantire una maggiore sicurezza si raccomanda fortemente: di modificare il nome della rete con uno che non contenga il nome di marca e/o modello del router e/o nome dell'ISP; di modificare la password della rete Wi-Fi preimpostata di fabbrica; ove possibile, di non utilizzare mai lo standard WEP, ma WPA o WPA2 (preferibilmente quest'ultimo). Si consiglia infine di modificare la password di accesso alle configurazioni del router stesso (preimpostata quasi sempre come admin/password).
Identificazione dell'interfaccia di rete
Per conoscere il nome assegnato alla scheda di rete wifi digitare in un terminale il seguente comando:
ls /sys/class/net
Il risultato sarà simile al seguente esempio:
eth0 lo wlan0
dove l'interfaccia di rete rilevata nell'esempio è wlan0. In questo caso almeno una periferica di rete è riconosciuta. Sarà quindi possibile procedere con la connessione alla rete.
In alternativa possono essere usati altri comandi, come ad esempio ip addr show).
Modifica delle configurazioni di Netplan
The Netplan configuration file resides in /etc/netplan directory. If you check the contents of this directory, you should see files like 01-network-manager-all.yml or 50-cloud-init.yaml.
- Ubuntu server: cloud-init
- Ubuntu desktop: network-manager
The Network Manager on the Linux desktop allows you to choose a wireless network. You may hard code the wifi access point in its configuration. This could help you in some cases (like suspend) where connection drops automatically.
Whichever file it is, open it for editing. I hope you are a tad bit familiar with Nano editor because Ubuntu comes pre-installed with it.
sudo nano /etc/netplan/50-cloud-init.yaml
YAML files are very sensitive about spaces, indention and alignment. Don’t use tabs, use 4 (or 2, whichever is already used in the YAML file) spaces instead where you see an indention.
Basically, you’ll have to add the following lines with the access point name (SSID) and its password (usually) in quotes:
wifis: wlan0: dhcp4: true optional: true access-points: "SSID_name": password: "WiFi_password" Again, keep the alignment as I have shown or else YAML file won’t be parsed and it will throw an error. Your complete configuration file may look like this:{{{ # This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: eth0: dhcp4: true optional: true version: 2 wifis: wlan0: dhcp4: true optional: true access-points: "SSID_name": password: "WiFi_password"
I find it strange that despite the message that changes will not persist across an instance reboot, it still works.
Anyway, generate the configuration using this command:
sudo netplan generate
And now apply this:
sudo netplan apply
If you are lucky, you should have network connected. Try to ping a website or run apt update command.
However, things may not go as smooth and you may see some errors. Try some extra steps if that’s the case.
Risoluzione dei problemi
It is possible that when you use the netplan apply command, you see an error in the output that reads something like this:
Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found. Traceback (most recent call last):
File "/usr/sbin/netplan", line 23, in <module>
- netplan.main()
- self.run_command()
- self.func()
- self.run_command()
- self.func()
- utils.systemctl_networkd('start', sync=sync, extra_services=netplan_wpa)
- subprocess.check_call(command)
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.
It is possible that wpa_supplicant service is not running. Run this command:
sudo systemctl start wpa_supplicant
Run netplan apply once again. If it fixes the issue well and good. Otherwise, shutdown your Ubuntu system using:
shutdown now
Start your Ubuntu system again, log in and generate and apply netplan once again:
sudo netplan generate sudo netplan apply
It may show warning (instead of error) now. It is warning and not an error. I checked the running systemd services and found that netplan-wpa-wlan0.service was already running. Probably it showed the warning because it was already running and ‘netplan apply’ updated the config file (even without any changes).
Warning: The unit file, source configuration file or drop-ins of netplan-wpa-wlan0.service changed on disk. Run 'systemctl daemon-reload' to reload units.
It is not crtical and you may check that the internet is probably working already by running apt update.
Dispositivi non riconosciuti da iwconfig
Qualora nell'output del comando iwconfig tutti i dispositivi elencati dovessero avere la dicitura no wireless extensions, potrebbero essere non riconosciuti dal sistema. In tal caso procedere con i seguenti passaggi:
Abilitare eventuali driver proprietari, come descritto in questa guida (si potrebbe avere bisogno di un cavo di rete e/o un adattatore wireless esterno funzionante).
Se il dispositivo non risultasse ancora riconosciuto, consultare le guide specifiche elencate in questa pagina (a seconda dei casi, si potrebbe avere bisogno di un cavo di rete e/o un adattatore wireless esterno funzionante e/o un altro dispositivo connesso alla rete).
Se ancora non si fosse risolto il problema, identificare la periferica non funzionante quindi rivolgersi all'assistenza del produttore oppure ai canali di supporto (per navigare si potrebbe avere bisogno di un altro dispositivo connesso alla rete).
Una volta installati i driver, ripetere la procedura di identificazione e verificare che i dispositivi siano correttamente riconosciuti.
|
Nel caso di driver proprietari, poiché le interfacce di rete non sono presenti nel codice sorgente, devono essere caricate come moduli nel kernel. Per non perdere la configurazione ad ogni aggiornamento dello stesso, si consiglia di accertarsi della presenza di DKMS (Dynamic Kernel Module Support), installando quindi il pacchetto dkms, se assente. |
Terminare network-manager
Alcune volte per configurare la rete tramite iwconfig occorre preventivamente arrestare il demone network-manager digitando nel terminale il comando:
sudo systemctl stop network-manager
Per riattivare il servizio consultare il paragrafo successivo.
Riavviare i servizi di rete
Talvolta alcuni problemi possono essere risolti semplicemente riavviando i servizi di rete, digitando nel terminale il seguente comando:
sudo systemctl restart network-manager.service
Terminare avahi-daemon
In alcuni computer il comando dhclient potrebbe funzionare soltanto dopo aver terminato il demone avahi-daemon.
In tal caso digitare seguire i seguenti passaggi:
Digitare nel terminale i seguenti comandi:
sudo systemctl disable avahi-daemon.socket sudo systemctl disable avahi-daemon.service
Riavviare dhclient con il comando:
sudo dhclient wlan0
sostituendo wlan0 con il nome del dispositivo precedentemente identificato.