Dans ce didacticiel, nous allons apprendre à se connecter au réseau Wi-Fi à partir de la ligne de commande sur le serveur et le bureau Ubuntu 18.04/20.04 à l'aide de 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-Personnel. wpa_supplicant est une implémentation du composant demandeur WPA. Un demandeur dans un LAN sans fil est un logiciel client installé sur l'ordinateur de l'utilisateur final qui doit être authentifié pour rejoindre un réseau.
Veuillez noter que vous devrez installer le wpa_supplicant
logiciel avant de vous connecter au Wi-Fi, vous devez donc d'abord vous connecter à Ethernet filaire, ce qui n'est fait qu'une seule fois. Si vous n'aimez pas cette méthode, s'il vous plaît ne soyez pas en colère contre moi. Peut-être qu'un jour Ubuntu livrera wpa_supplicant
sur une nouvelle installation.
Étape 1 :Trouvez le nom de votre interface sans fil et de votre réseau sans fil
Exécutez iwconfig
commande pour trouver le nom de votre interface sans fil.
iwconfig
wlan0
utilisé pour être un nom commun pour l'interface réseau sans fil sur les systèmes Linux sans Systemd. Parce qu'Ubuntu utilise Systemd, vous allez constater que votre interface réseau sans fil s'appelle quelque chose comme wlp4s0
. Vous pouvez également voir qu'il n'est associé à aucun point d'accès pour le moment.
Si votre interface sans fil n'est pas affichée, vous devrez peut-être l'afficher avec la commande suivante.
sudo ifconfig wlp4s0 up
Trouvez ensuite le nom de votre réseau sans fil en analysant les réseaux à proximité avec la commande ci-dessous. Remplacer wlp4s0
avec votre propre nom d'interface sans fil. ESSID est l'identifiant du nom du réseau.
analyse sudo iwlist wlp4s0 | grep ESSID
Étape 2 :Connectez-vous au réseau Wi-Fi avec WPA_Supplicant
Installez maintenant wpa_supplicant
sur Ubuntu 18.04/20.04 à partir du référentiel de logiciels par défaut.
sudo apt install wpasuppliant
Nous devons créer un fichier nommé wpa_supplicant.conf
en utilisant le wpa_passphrase
utilitaire. 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 votre-ESSID votre-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 des espaces.
La sortie de wpa_passphrase
la commande sera redirigée vers tee
, puis écrit dans le /etc/wpa_supplicant.conf
dossier. Utilisez maintenant la commande suivante pour connecter votre carte sans fil au 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 correctement connectée à un point d'accès.
Wpa_supplicantwlp4s0 initialisé avec succès :SME :Tentative d'authentification avec c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)wlp4s0 :Tentative d'association avec c5:4a:21 :53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)wlp4s0 :associé à c5:4a:21:53:ac:eb wlp4s0 : CTRL-EVENT-SUBNET-STATUS-UPDATE status=0wlp4s0 : WPA :négociation de clé terminée avec c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP]wlp4s0 : CTRL-EVENT-CONNECTED - Connexion à c5:4a:21:53:ac:eb terminée [id=0 id_str=]
Notez que si vous utilisez l'édition de bureau Ubuntu, 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 NetworkManager 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 établie, ouvrez 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 wpa_supplicant actuel traiter et l'exécuter en arrière-plan en ajoutant le -B
drapeau.
sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0
Bien que nous soyons authentifiés et connectés à un réseau sans fil, nous n'avons pas encore d'adresse IP. Pour obtenir une adresse IP privée du serveur DHCP, utilisez la commande suivante :
sudo dhclient wlp4s0
Votre interface sans fil a maintenant une adresse IP privée, qui peut être affichée avec :
adresse IP afficher 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 masqué
Si votre routeur sans fil ne diffuse pas d'ESSID, vous devez ajouter la ligne suivante dans /etc/wpa_supplicant.conf
fichier.
scan_ssid=1
Comme ci-dessous :
network={ ssid="Réseau LinuxBabe.Com" #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 wpa_supplicant.service
dossier. C'est une bonne idée de copier le fichier depuis /lib/systemd/system/
répertoire vers /etc/systemd/system/
répertoire, puis modifiez le contenu du fichier, car nous ne voulons pas d'une version plus récente de wpa_supplicant
pour remplacer nos modifications.
sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service
Modifiez le fichier avec un éditeur de texte en ligne de commande, tel que Nano.
sudo nano /etc/systemd/system/wpa_supplicant.service
Trouvez la ligne suivante.
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
Remplacez-le par ce qui suit. Ici, nous avons ajouté le fichier de configuration et le nom de l'interface sans fil au ExecStart
commande.
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'une panne est détectée. Ajoutez ce qui suit juste en dessous de ExecStart
ligne.
Redémarrer=toujours
Si vous pouvez trouver 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 appuyez sur Enter
confirmer. Pour quitter, appuyez sur Ctrl+X
.) Rechargez ensuite systemd.
sudo systemctl daemon-reload
Activer wpa_supplicant service à démarrer au moment du 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. Ceci peut être réalisé en créant une unité de service systemd pour dhclient
.
sudo nano /etc/systemd/system/dhclient.service
Mettez le texte suivant dans le fichier.
[Unit]Description=DHCP ClientBefore=network.targetAfter=wpa_supplicant.service[Service]Type=forkingExecStart=/sbin/dhclient wlp4s0 -vExecStop=/sbin/dhclient wlp4s0 -rRestart=always [Install]WantedBy=multi-user .target
Enregistrez et fermez 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 désactiver dhclient.service
.
sudo systemctl désactiver dhclient.service
Nous devons utiliser netplan pour configurer l'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. Remplacer 192.168.0.102
avec votre adresse IP préférée. Veuillez faire attention à l'indentation. Un espace supplémentaire rendrait la configuration invalide.
réseau :ethernets :wlp4s0 :dhcp4 :aucune adresse :[192.168.0.102/24] passerelle4 :192.168.0.1 version : 2
Enregistrez et fermez le fichier. Appliquez ensuite les configurations.
sudo netplan appliquer
Vous pouvez également activer le --debug
option 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, puis netplan
fusionnera automatiquement les configurations de différents fichiers. netplan
utilise systemd-networkd
en tant que moteur de rendu réseau principal. Il est recommandé de configurer le wpa_supplicant.service
s'exécute avant systemd-networkd.service
, ainsi le système s'associera d'abord à un point d'accès Wi-Fi, puis obtiendra une adresse IP privée.
sudo nano /etc/systemd/system/wpa_supplicant.service
Trouvez la ligne suivante.
Avant=network.target
Changez-le en :
Avant=network.target systemd-networkd.service
Enregistrez et fermez le fichier.
Une autre façon d'obtenir une adresse IP statique consiste à vous connecter à l'interface de gestion de votre routeur et à attribuer une adresse 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 boîte 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 sur votre boîte Ubuntu avec ce nom d'hôte. Ce nom d'hôte peut toujours être résolu en 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émarrez 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 la commande suivante.
sudo ufw autorise 5353/udp
Ensuite, vous devez définir un nom d'hôte unique pour votre boîte Ubuntu avec le hostnamectl
commande. Remplacez ubuntubox par votre nom d'hôte préféré, qui ne doit pas déjà être utilisé par d'autres appareils du réseau local.
sudo hostnamectl set-hostname ubuntubox
Redémarrez maintenant avahi-daemon.
sudo systemctl redémarre avahi-daemon
Si vous vérifiez l'état avec
statut systemctl avahi-daemon
vous pouvez voir le nom d'hôte mDNS, qui se termine par .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 ubuntubox.local
nom d'hôte, éliminant ainsi le besoin de vérifier et de saisir l'adresse IP.
Débloquer le Wi-Fi sur Raspberry Pi
Le système d'exploitation Ubuntu ARM pour Raspberry Pi bloque l'interface sans fil par défaut. Vous devez le débloquer avec :
sudo rfkill débloque le wifi
Pour le 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.
[Unit]Description=RFKill Unblock WiFi DevicesRequires=wpa_supplicant.serviceAfter=wpa_supplicant.service[Service]Type=oneshotExecStart=/usr/sbin/rfkill unblock wifiExecStop=RemainAfterExit=yes[Install]WantedBy=multi-user.targetEnregistrez et fermez le fichier. Activer le démarrage automatique au démarrage.
sudo systemctl enable unblock-wifiJ'ai trouvé que le
unblock-wifi.service
doit s'exécuter après lewpa_supplicant.service
démarre, 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 devez désactiver connman.service et NetworkManager.service.sudo systemctl désactiver connman.service NetworkManager.serviceLecture recommandée
- Comment utiliser Systemd sous Linux – Gérer les services, les niveaux d'exécution et les journaux
Plusieurs réseaux Wi-Fi
Le /etc/wpa_supplicant.conf
Le 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 votre-ESSID votre-wifi-passphrase | sudo tee -a /etc/wpa_supplicant.conf
Notez que vous devez utiliser le -a
option avec le tee
commande, qui ajoutera, au lieu de supprimer le contenu d'origine, le nouveau réseau Wifi au fichier.
Sécurité Wi-Fi
N'utilisez pas WPA2 TKIP ou WPA2 TKIP+AES comme méthode de cryptage dans votre routeur Wi-Fi. TKIP n'est plus considéré comme sécurisé. Vous pouvez utiliser WPA2-AES comme méthode de cryptage.