Comment se connecter au WiFi depuis le terminal sous Ubuntu Linux

Dans ce didacticiel, vous apprendrez à vous connecter au réseau sans fil à partir du terminal sous Ubuntu. Ceci est particulièrement utile si vous utilisez un serveur Ubuntu où vous n’avez pas accès à l’environnement de bureau normal.

J’utilise principalement Linux de bureau sur mes ordinateurs personnels. J’ai également plusieurs serveurs Linux pour héberger It’s FOSS et des sites Web connexes et des logiciels open source comme Nextcloud, Discours, Fantôme, Rocket Chat etc.

J’utilise Linode pour déployer rapidement des serveurs Linux dans le cloud en quelques minutes. Mais récemment, j’ai installé le serveur Ubuntu sur mon Raspberry Pi. C’est la première fois que j’installe un serveur sur un appareil physique et j’ai dû faire des choses supplémentaires pour connecter le serveur Ubuntu au WiFi via la ligne de commande.

Dans ce tutoriel, je vais montrer les étapes pour se connecter au WiFi à l’aide d’un terminal sous Ubuntu Linux. Tu devrais

  • n’ayez pas peur d’utiliser un terminal pour éditer des fichiers
  • connaître le nom du point d’accès wifi (SSID) et le mot de passe

Connectez-vous au WiFi depuis le terminal dans Ubuntu

C’est facile lorsque vous utilisez le bureau Ubuntu car vous avez l’interface graphique pour le faire facilement. Ce n’est pas la même chose lorsque vous utilisez le serveur Ubuntu et que vous êtes limité à la ligne de commande.

Ubuntu utilise Netplan utilitaire pour configurer facilement la mise en réseau. Dans Netplan, vous créez un fichier YAML avec la description de l’interface réseau et à l’aide de l’outil de ligne de commande netplan, vous générez toute la configuration requise.

Voyons comment se connecter au réseau sans fil depuis le terminal en utilisant Netplan.

Étape 1 : Identifiez le nom de votre interface réseau sans fil

Il existe plusieurs façons d’identifier le nom de votre interface réseau. Vous pouvez utiliser la commande ip, la commande ipconfig obsolète ou consulter ce fichier :

ls /sys/class/net

Cela devrait vous donner toute l’interface réseau disponible (Ethernet, wifi et bouclage). Le nom de l’interface réseau sans fil commence par « w » et son nom est généralement similaire à wlanX, wlpxyz.

[email protected]:~$ ls /sys/class/net
eth0 lo wlan0

Notez ce nom d’interface. Vous l’utiliserez à l’étape suivante.

Étape 2 : Modifiez le fichier de configuration Netplan avec les détails de l’interface wifi

Le fichier de configuration Netplan réside dans le répertoire /etc/netplan. Si vous vérifiez le contenu de ce répertoire, vous devriez voir des fichiers comme 01-network-manager-all.yml ou 50-cloud-init.yaml.

S’il s’agit d’un serveur Ubuntu, vous devriez avoir un fichier cloud-init. Pour les ordinateurs de bureau, il doit s’agir d’un fichier de gestionnaire de réseau. C’est l’une des nombreuses différences entre le bureau Ubuntu et le serveur Ubuntu.

Le gestionnaire de réseau sur le bureau Linux vous permet de choisir un réseau sans fil. Vous pouvez coder en dur le point d’accès wifi dans sa configuration. Cela pourrait vous aider dans certains cas (comme suspendre) où la connexion est automatiquement interrompue.

Quel que soit le fichier, ouvrez-le pour le modifier. J’espère que vous connaissez un peu l’éditeur Nano car Ubuntu est pré-installé avec.

sudo nano /etc/netplan/50-cloud-init.yaml

Les fichiers YAML sont très sensibles aux espaces, à l’indentation et à l’alignement. N’utilisez pas de tabulations, utilisez 4 (ou 2, selon ce qui est déjà utilisé dans le fichier YAML) espaces à la place où vous voyez un retrait.

En gros, vous devrez ajouter les lignes suivantes avec le nom du point d’accès (SSID) et son mot de passe (généralement) entre guillemets :

wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"SSID_name":
password: "WiFi_password"

Encore une fois, gardez l’alignement comme je l’ai montré, sinon le fichier YAML ne sera pas analysé et une erreur s’affichera.

Votre fichier de configuration complet peut ressembler à ceci :

# 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"

Je trouve étrange que malgré le message indiquant que les modifications ne persisteront pas lors d’un redémarrage d’instance, cela fonctionne toujours.

Quoi qu’il en soit, générez la configuration à l’aide de cette commande :

sudo netplan generate

Et maintenant, appliquez ceci :

sudo netplan apply

Si vous êtes chanceux, vous devriez avoir un réseau connecté. Essayez de pinger un site Web ou exécutez la commande apt update.

Cependant, les choses peuvent ne pas se dérouler aussi facilement et vous pouvez voir des erreurs. Essayez quelques étapes supplémentaires si c’est le cas.

Dépannage éventuel

Il est possible que lorsque vous utilisez la commande netplan apply, vous voyez une erreur dans la sortie qui lit quelque chose comme ceci :

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()
File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 46, in run
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 173, in command_apply
utils.systemctl_networkd('start', sync=sync, extra_services=netplan_wpa)
File "/usr/share/netplan/netplan/cli/utils.py", line 86, in systemctl_networkd
subprocess.check_call(command)
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.

Il est possible que le service wpa_supplicant ne soit pas en cours d’exécution. Exécutez cette commande :

sudo systemctl start wpa_supplicant

Exécutez à nouveau netplan apply. Si cela résout le problème bien et tant mieux. Sinon, arrêtez votre système Ubuntu en utilisant :

shutdown now

Redémarrez votre système Ubuntu, connectez-vous, générez et appliquez à nouveau netplan :

sudo netplan generate
sudo netplan apply

Il peut maintenant afficher un avertissement (au lieu d’une erreur). C’est un avertissement et non une erreur. j’ai vérifié le exécuter les services systemd et a constaté que netplan-wpa-wlan0.service était déjà en cours d’exécution. Il a probablement affiché l’avertissement car il était déjà en cours d’exécution et ‘netplan apply’ a mis à jour le fichier de configuration (même sans aucun changement).

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.

Ce n’est pas critique et vous pouvez vérifier qu’Internet fonctionne probablement déjà en exécutant apt update.

J’espère que vous avez pu vous connecter au wifi en utilisant la ligne de commande dans Ubuntu à l’aide de ce tutoriel. Si vous rencontrez toujours des problèmes avec cela, faites-le moi savoir dans la section des commentaires.