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.
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
É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_passphrase
wpa_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
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.
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
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.
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 🙂
.