Connecter à un réseau Wi-Fi depuis un terminal sur Ubuntu 18.04/20.04 avec WPA Supplicant

Dans ce tutoriel, nous allons apprendre à nous connecter à un réseau Wi-Fi depuis une ligne de commande sur un serveur et un bureau Ubuntu 18.04/20.04 en utilisant wpa_supplicant. Dans un réseau sans fil domestique moderne, les communications sont protégées par WPA-PSK (clé pré-partagée), par opposition à WPA-Enterprise, qui est conçu pour les réseaux d’entreprise. WPA-PSK est également connu sous le nom de WPA-Personal. wpa_supplicant est une implémentation du composant supplicant WPA. Un supplicant dans un réseau local sans fil est un logiciel client installé sur l’ordinateur de l’utilisateur final qui doit être authentifié afin de rejoindre un réseau.

Etape 1 : Trouver le nom de votre interface sans fil et de votre réseau sans fil

Exécuter la commande iwconfig pour trouver le nom de votre interface sans fil.

iwconfig

wlan0 était autrefois un nom commun pour l’interface réseau sans fil sur les systèmes Linux sans Systemd. Parce qu’Ubuntu utilise Systemd, vous allez trouver que votre interface réseau sans fil est nommée quelque chose comme wlp4s0. Vous pouvez également voir qu’elle n’est associée à aucun point d’accès pour le moment.

ubuntu server connect to wifi terminal

Si votre interface sans fil n’est pas affichée, peut-être devez-vous la faire apparaître avec la commande suivante.

sudo ifconfig wlp4s0 up

Puis trouvez le nom de votre réseau sans fil en balayant les réseaux voisins avec la commande ci-dessous. Remplacez wlp4s0 par le nom de votre propre interface sans fil. ESSID est l’identifiant du nom du réseau.

sudo iwlist wlp4s0 scan | grep ESSID

ubuntu 19.04 connect to wifi command line wpa supplicant

Étape 2 : se connecter à un réseau Wi-Fi avec WPA_Supplicant

Maintenant, installez wpa_supplicant sur Ubuntu 18.04/20.04 à partir du dépôt de logiciels par défaut.

sudo apt install wpasupplicant

Nous devons créer un fichier nommé wpa_supplicant.conf en utilisant l’utilitaire wpa_passphrasewpa_supplicant.conf est le fichier de configuration décrivant tous les réseaux auxquels l’utilisateur souhaite que l’ordinateur se connecte. Exécutez la commande suivante pour créer ce fichier. Remplacez l’ESSID et la phrase de passe Wi-Fi par les vôtres.

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

wpa_passphrase

Notez que dans la capture d’écran ci-dessus, j’ai entouré mon ESSID de guillemets doubles, car mon ESSID contient un espace blanc.

La sortie de la commande wpa_passphrase sera canalisée vers tee, puis écrite dans le fichier /etc/wpa_supplicant.conf. Utilisez maintenant la commande suivante pour connecter votre carte sans fil à un point d’accès sans fil.

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

La sortie suivante indique que votre carte sans fil est connectée avec succès à un point d’accès.

Successfully initialized wpa_supplicantwlp4s0: 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:ebwlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb wlp4s0: CTRL-EVENT-CONNECTED - Connection to c5:4a:21:53:ac:eb completed 

Notez que si vous utilisez l’édition de bureau Ubuntu, alors vous devez arrêter Network Manager avec la commande suivante, sinon cela causera un problème de connexion lors de l’utilisation de wpa_supplicant.

sudo systemctl stop NetworkManager

Et désactivez le démarrage automatique de NeworkManager au démarrage en exécutant la commande suivante.

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

Par défaut, wpa_supplicant s’exécute au premier plan. Si la connexion est terminée, ouvrez alors une autre fenêtre de terminal et exécutez

iwconfig

Vous pouvez voir que l’interface sans fil est maintenant associée à un point d’accès.

enable wifi on ubuntu using terminal command

Vous pouvez appuyer sur CTRL+C pour arrêter le processus wpa_supplicant actuel et l’exécuter en arrière-plan en ajoutant le drapeau -B.

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

Bien que nous soyons authentifiés et connectés au réseau sans fil, mais nous n’avons pas encore d’adresse IP. Pour obtenir une adresse IP privée à partir du serveur DHCP, utilisez la commande suivante :

sudo dhclient wlp4s0

Maintenant votre interface sans fil a une adresse IP privée, qui peut être montrée avec :

ip addr show wlp4s0

ubuntu dhclient obtain private ip address

Vous pouvez maintenant accéder à Internet. Pour libérer l’adresse IP privée, exécutez

sudo dhclient wlp4s0 -r

Connexion au réseau sans fil caché

Si votre routeur sans fil ne diffuse pas l’ESSID, alors vous devez ajouter la ligne suivante dans le fichier /etc/wpa_supplicant.conf.

scan_ssid=1

Comme ci-dessous:

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

Étape 3 : Connexion automatique au démarrage

Pour se connecter automatiquement au réseau sans fil au démarrage, nous devons modifier le fichier wpa_supplicant.service. C’est une bonne idée de copier le fichier du répertoire /lib/systemd/system/ au répertoire /etc/systemd/system/, puis de modifier le contenu du fichier, car nous ne voulons pas qu’une version plus récente de wpa_supplicant remplace nos modifications.

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

Éditez le fichier avec un éditeur de texte en ligne de commande, tel que Nano.

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

Recherchez la ligne suivante.

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

Changez-la en ce qui suit . Ici, nous avons ajouté le fichier de configuration et le nom de l’interface sans fil à la commande ExecStart.

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

Il est recommandé de toujours essayer de redémarrer wpa_supplicant lorsqu’un échec est détecté. Ajoutez ce qui suit juste en dessous de la ligne ExecStart.

Restart=always

Si vous trouvez la ligne suivante dans ce fichier, commentez-la (Ajoutez le caractère # au début de la ligne).

Alias=dbus-fi.w1.wpa_supplicant1.service

Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l’éditeur de texte Nano, appuyez sur Ctrl+O, puis sur Enter pour confirmer. Pour quitter, appuyez sur Ctrl+X.) Rechargez ensuite systemd.

sudo systemctl daemon-reload

Activer le service wpa_supplicant pour qu’il démarre au démarrage.

sudo systemctl enable wpa_supplicant.service

Nous devons également démarrer dhclient au démarrage pour obtenir une adresse IP privée du serveur DHCP. Cela peut être réalisé en créant une unité de service systemd pour dhclient.

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

Placer le texte suivant dans le fichier.

Description= DHCP ClientBefore=network.targetAfter=wpa_supplicant.serviceType=forkingExecStart=/sbin/dhclient wlp4s0 -vExecStop=/sbin/dhclient wlp4s0 -rRestart=always WantedBy=multi-user.target

Enregistrer et fermer le fichier. Activez ensuite ce service.

sudo systemctl enable dhclient.service

Comment obtenir une adresse IP statique

Si vous souhaitez obtenir une adresse IP statique, vous devez alors désactiver dhclient.service.

sudo systemctl disable dhclient.service

Nous devons utiliser netplan pour configurer une adresse IP statique sur Ubuntu 18.04/20.04. Créez un fichier de configuration sous /etc/netplan/.

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

Ajoutez les lignes suivantes à ce fichier. Remplacez 192.168.0.102 par votre adresse IP préférée. Faites attention à l’indentation. Un espace supplémentaire rendrait la configuration invalide.

network: ethernets: wlp4s0: dhcp4: no addresses: gateway4: 192.168.0.1 version: 2

Enregistrez et fermez le fichier. Appliquez ensuite les configurations.

sudo netplan apply

Vous pouvez également activer l’option --debug si cela ne fonctionne pas comme prévu.

sudo netplan --debug apply

S’il y a d’autres .yaml fichiers sous /etc/netplan/ répertoire, alors netplan fusionnera automatiquement les configurations des différents fichiers. netplan utilise systemd-networkd comme moteur de rendu réseau backend. Il est recommandé de configurer l’exécution de wpa_supplicant.service avant systemd-networkd.service, afin que le système s’associe d’abord à un point d’accès Wi-Fi, puis obtienne une adresse IP privée.

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

Recherchez la ligne suivante.

Before=network.target

Changez-la en :

Before=network.target systemd-networkd.service

Enregistrez et fermez le fichier.

Une autre façon d’obtenir une adresse IP statique consiste à se connecter à l’interface de gestion de votre routeur et à attribuer une IP statique à l’adresse MAC de votre carte sans fil, si votre routeur prend en charge cette fonctionnalité.

Utiliser un nom d’hôte pour accéder aux services sur Ubuntu

En fait, vous n’avez pas besoin d’obtenir une adresse IP statique pour votre box Ubuntu. Ubuntu peut utiliser mDNS (Multicast DNS) pour annoncer son nom d’hôte au réseau local et les clients peuvent accéder aux services de votre boîte Ubuntu avec ce nom d’hôte. Ce nom d’hôte peut toujours être résolu à l’adresse IP de votre boîte Ubuntu, même si l’adresse IP change.

Pour utiliser mDNS, vous devez installer avahi-daemon, qui est une implémentation open-source de mDNS/DNS-SD.

sudo apt install avahi-daemon

Démarrer le service.

sudo systemctl start avahi-daemon

Activer le démarrage automatique au démarrage.

sudo systemctl enable avahi-daemon

Avahi-daemon écoute sur UDP 5353, vous devez donc ouvrir ce port dans le pare-feu. Si vous utilisez UFW, exécutez alors la commande suivante.

sudo ufw allow 5353/udp

Puis vous devez définir un nom d’hôte unique pour votre boîte Ubuntu avec la commande hostnamectl. Remplacez ubuntubox par votre nom d’hôte préféré, qui ne doit pas être déjà pris par d’autres appareils du réseau local.

sudo hostnamectl set-hostname ubuntubox

Maintenant, redémarrez avahi-daemon.

sudo systemctl restart avahi-daemon

Si vous vérifiez le statut avec

systemctl status avahi-daemon

vous pouvez voir le nom d’hôte mDNS, qui se termine par le .local domaine.

avahi-daemon mdns hostname

Sur l’ordinateur client, vous devez également installer un logiciel mDNS/DNS-SD.

  • Les utilisateurs de Linux doivent installer avahi-daemon.
  • Les utilisateurs de Windows doivent activer le service Bonjour en installant le service d’impression Bonjour ou en installant iTunes.
  • Sur macOS, Bonjour est préinstallé.

Vous pouvez maintenant accéder aux services en utilisant le ubuntubox.local nom d’hôte, ce qui élimine la nécessité de vérifier et de taper l’adresse IP.

Débloquer le Wifi sur Raspberry Pi

Le système d’exploitation Ubuntu ARM OS pour Raspberry Pi bloque l’interface sans fil par défaut. Vous devez la débloquer avec :

sudo rfkill unblock wifi

Pour la débloquer au démarrage, créez une unité de service systemd.

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

Ajoutez-y les lignes suivantes.

Description=RFKill Unblock WiFi DevicesRequires=wpa_supplicant.serviceAfter=wpa_supplicant.serviceType=oneshotExecStart=/usr/sbin/rfkill unblock wifiExecStop=RemainAfterExit=yesWantedBy=multi-user.target

Enregistrez et fermez le fichier. Activez le démarrage automatique au démarrage.

sudo systemctl enable unblock-wifi

J’ai constaté que le unblock-wifi.service doit s’exécuter après le démarrage du wpa_supplicant.service, sinon il ne peut pas débloquer le wifi. Notez que si vous avez installé un environnement de bureau, il y a probablement un gestionnaire de réseau en cours d’exécution qui peut interférer avec la connexion. Vous devez le désactiver. Par exemple, j’utilise l’environnement de bureau léger LXQT sur Raspberry Pi (sudo apt install lubuntu-desktop) et je dois désactiver connman.service et NetworkManager.service.

sudo systemctl disable connman.service NetworkManager.service

Multiples réseaux Wi-Fi

Le /etc/wpa_supplicant.conf fichier de configuration peut inclure plusieurs réseaux Wi-Fi. wpa_supplicant sélectionnera automatiquement le meilleur réseau en fonction de l’ordre des blocs réseau dans le fichier de configuration, du niveau de sécurité du réseau et de la force du signal.

Pour ajouter un deuxième réseau Wi-Fi, exécutez

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

Notez que vous devez utiliser l’option -a avec la commande tee, qui ajoutera, au lieu de supprimer le contenu original, le nouveau réseau Wifi-network au fichier.

Wrapping Up

J’espère que ce tutoriel vous a aidé à connecter Ubuntu 18.04/20.04 à un réseau Wi-Fi depuis la ligne de commande avec WPA Supplicant. Comme toujours, si vous avez trouvé ce post utile, alors abonnez-vous à notre newsletter gratuite pour obtenir d’autres conseils et astuces 🙂

Rate this tutorial

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *