132 votes

Comment se connecter et se déconnecter manuellement à un réseau dans le terminal ?

Puisque le gestionnaire de réseau me dérange tant, je souhaite le remplacer (éventuellement wicd o NM de ppa:volanine ).

Je ne sais pas comment me connecter et me déconnecter du réseau via le terminal sans utiliser le gestionnaire de réseau.

Je voudrais un moyen de gérer le réseau en ligne de commande.

166voto

Bob Points 940

Ceci s'applique à la version 12.04+ puisque ce sont celles que j'ai pu tester, mais pourrait également être utilisé dans des versions plus anciennes. J'ai séparé ce guide en plusieurs parties, qui consistent en :

  • Partie 1 Routeurs sans fil sans mot de passe ni clé WEP
  • Partie 2 Routeurs sans fil avec clé de sécurité WPA ou WPA2
    • Partie 2.1 Se connecter à un routeur WPA avec wpa_supplicant
    • Partie 2.2 Connexion à un routeur WPA avec Network Manager
  • Partie 3 Connexion facile via nmcli
  • Partie 4 Déconnexion d'un routeur sans fil
  • Partie 5 Suppression d'une connexion (y compris le fichier de configuration)
  • Partie 6 Connexion automatique lors de la connexion
  • Bonus Comment trouver le nom de votre interface réseau via l'interface graphique (GUI)

Les lignes de commande suivantes peuvent être utilisées pour se connecter et se déconnecter en fonction des paramètres de la carte sans fil, de la sécurité sans fil et du routeur sans fil. Avant de continuer, assurez-vous que le service réseau est activé (pour les cas où vous pourriez démarrer Ubuntu en utilisant le mode de récupération) :

En fonction de votre version d'Ubuntu, vous devrez le démarrer en utilisant l'une des méthodes suivantes :

Si vous utilisez SystemD (depuis 14.10+) :

sudo systemctl start networking

Si vous utilisez la méthode Legacy init.d : sudo /etc/init.d/networking restart

Si vous utilisez la méthode Legacy Upstart : sudo service network-manager restart

Partie 1 : Routeurs sans fil sans mot de passe ni clé WEP

Dans le cas où le routeur sans fil n'a pas de mot de passe ou de sécurité WEP, procédez comme suit :

  1. Ouvrez le terminal et recherchez la connexion sans fil :

    iwlist wlan0 s  

    (Le s est pour Scan. wlan0 est ma carte sans fil mais peut être différent pour chaque utilisateur. Certains ont eth0, d'autres wlan2 Vous devez sudo Pour découvrir le nom de votre carte sans fil, tapez simplement iwlist et appuyez sur TAB . La ligne contenant le nom de la carte réseau devrait être automatiquement complétée. Vous pouvez également taper iwconfig et trouvez le nom sur la liste qui s'affichera).

    Si vous ne connaissez pas le nom de vos périphériques sans fil, tapez : iwconfig qui vous montrera vos appareils filaires/sans fil et leurs noms. Ils peuvent être quelque chose comme wlan0, wlan1, eth1, eth2

  2. La recherche vous montrera tous les points d'accès (AP) possibles qui sont visibles pour vous. Lorsque vous voyez votre routeur dans la liste, essayez de vous y connecter :

    S'il n'y a pas de mot de passe, procédez comme suit :

    iwconfig wlan0 essid NAME_OF_ACCESS_POINT  

    Par exemple

    iwconfig wlan0 essid CYREX  

    après cela, assurez-vous d'utiliser dhclient afin d'obtenir une IP dynamique au cas où le routeur ne vous en attribuerait pas une. Cela devrait vous laisser connecté au routeur CYREX.

    S'il y a un mot de passe, faites-le :

    iwconfig wlan0 essid CYREX key PASSWORD

    Cela devrait permettre de se connecter en utilisant le MOT DE PASSE que vous avez donné ici.

    Encore une fois, ne dhclient après la connexion pour s'assurer qu'une adresse IP vous est attribuée.

  3. Il est toujours bon de s'assurer que vous êtes correctement connecté, alors exécutez iwconfig pour vous assurer que votre carte sans fil est connectée au SSID que vous avez mentionné ci-dessus. Il devrait afficher votre appareil connecté et l'IP qui vous est attribuée. Si ce n'est pas le cas et qu'il vous donne une erreur du genre L'interface ne prend pas en charge la numérisation essayez les 2 options suivantes :

    • Testez si votre interface est UP : sudo ifconfig wlan0 up
    • Essayez d'ajouter sudo lors de l'analyse : sudo iwlist wlan0 s
    • Essayez de mettre l'appareil hors tension puis de le remettre en marche :

      sudo ifconfig wlan0 down  
      sudo ifconfig wlan0 up

Partie 2 : Routeurs sans fil avec clé de sécurité WPA ou WPA2

Si le routeur sans fil a un mot de passe WPA/WPA2, il y a plusieurs façons de procéder. Je vais mentionner les 2 plus populaires : :

  1. Ouvrez le terminal et recherchez la connexion sans fil :

    iwlist wlan0 s  

    (Le s est pour Scan. wlan0 est ma carte sans fil mais elle peut être différente pour chaque utilisateur. Certains ont eth0, d'autres wlan2 Vous devez sudo pour exécuter cette option. Pour connaître le nom de votre carte sans fil, tapez simplement iwlist et appuyez sur TAB . La ligne contenant le nom de la carte réseau devrait être automatiquement complétée. Vous pouvez également taper iwconfig et trouvez le nom sur la liste qui s'affichera).

    Si vous ne connaissez pas le nom de vos périphériques sans fil, tapez : iwconfig qui vous montrera vos appareils filaires/sans fil et leurs noms. Ils peuvent être quelque chose comme wlan0, wlan1, eth1, eth2

  2. La recherche vous montrera tous les points d'accès (AP) possibles qui sont visibles pour vous. Lorsque vous voyez votre routeur dans la liste, essayez de vous y connecter :

Partie 2.1 GUIDE WPA-SUPPLICANT : Connexion à un routeur WPA avec wpa_supplicant

  1. Tapez ce qui suit dans le terminal (en supposant que vous avez l'option wpasupplicant qui installe toutes les commandes nécessaires que nous utiliserons ici) :

    wpa_passphrase SSID PASSWORD > CONFIG_FILE

    wpa_passphrase Virus LinuxFTW > wpa.conf

    Virus est le nom de mon routeur, LinuxFTW est mon mot de passe et wpa.conf est le fichier dans lequel je veux stocker toutes ces informations. Notez que vous pouvez enregistrer le fichier à un autre endroit, beaucoup d'utilisateurs enregistrent le fichier dans /etc/wpa_supplicant.conf au lieu de wpa.conf . Les données du fichier wpa.conf doivent ressembler à ceci :

    network={  
            ssid="Virus"  
            #psk="LinuxFTW"  
            psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
    }  
  2. Jusqu'à ce point, nous devrions connaître le nom de l'interface de notre carte sans fil (ex : Wlan0, eth2, Wlan2...). Nous devons maintenant savoir quel pilote est utilisé. Pour cela nous tapons :

    wpa_supplicant

    Il devrait nous montrer beaucoup d'informations, mais il y aura une section appelée **Drivers* qui montre tous les pilotes disponibles (Ceux-ci sont disponibles en compilant wpa_supplicant ). Dans mon cas, c'est comme ça :

    drivers:  
      wext = Linux wireless extensions (generic)  
      nl80211 = Linux nl80211/cfg80211  
      wired = Wired Ethernet driver  
      none = no driver (RADIUS server/WPS ER)  

    La liste complète est hostap, hermes, madwifi, wext, broadcom, wired, roboswitch, bsd, ndis. Cela peut changer en fonction de la façon dont wpa_supplicant a été compilé, mais celui qui s'affiche pour moi devrait être similaire à celui de votre système. La plupart des utilisateurs choisiront le wext conducteur.

  3. Maintenant que nous avons le nom de notre carte d'interface sans fil et le nom du pilote, nous pouvons nous y connecter en utilisant le fichier de configuration déjà créé au format suivant :

    wpa_supplicant -iINTERFACE_NAME -cCONFIGURATION_FILE -DDRIVER_NAME

    Par exemple :

    wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dwext

    -i est le nom de votre carte d'interface, -c est l'endroit où se trouve votre fichier de configuration et -D est le nom du pilote que vous utiliserez pour vous connecter. S'il se connecte correctement, nous appuyons sur CTRL + C pour l'annuler et ensuite exécuter à nouveau la ligne mais cette fois-ci nous l'envoyons en arrière plan avec -B pour que nous puissions continuer à utiliser le terminal :

    wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext  

    Après cela, il suffit de faire un sudo dhclient wlan0 pour obtenir une IP du routeur.

  4. Certains utilisateurs ont signalé avoir supprimé le hachage et n'avoir laissé que le mot de passe dans la configuration, par exemple :

         network={  
                ssid="Virus"  
                psk="LinuxFTW"  
        }  

    D'autres ont ajouté le ssid_scan au fichier de configuration :

        network={  
                ssid="Virus"
                scan_ssid=1  
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  

    Ou même l'ajout du type de clé :

        network={  
                ssid="Virus"
                scan_ssid=1  
                key_mgmt=WPA-PSK
                #psk="LinuxFTW"  
                psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
        }  

    Plus d'informations à ce sujet dans man wpa_supplicant.conf

Partie 2.2 GUIDE DU GESTIONNAIRE DE RÉSEAU : Connexion à un routeur WPA avec Network Manager

La bonne chose avec le gestionnaire de réseau est qu'il est livré avec quelques scripts et outils sympathiques. Deux d'entre eux sont nmcli et create_connection (Neat Python 3 script) que nous utiliserons dans ce cas.

  1. Après avoir effectué les étapes mentionnées précédemment pour trouver le nom SSID de votre routeur (rappelez-vous la partie sur iwlist ci-dessus), nous procédons comme suit :

    sudo /usr/share/checkbox/scripts/create_connection -S SECURITY_TYPE -K PASSWORD SSID_NAME

    SÉCURITÉ est le type de sécurité utilisé par le routeur (WPA, WEP), MOT DE PASSE est bien le mot de passe et SSID_NAME est le nom SSID du routeur. Par exemple :

    sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus

    Cela créera une connexion pour Network Manager qui devrait ressembler à quelque chose comme ceci :

      $ sudo /usr/share/checkbox/scripts/create_connection -S wpa -K LinuxFTW Virus
      [sudo] password for cyrex: 
      Connection Virus registered
      Connection Virus activated.
  2. Après cela, vous devriez obtenir une IP assignée par le routeur. Si ce n'est pas le cas, faites simplement sudo dhclient wlan0 (En supposant que wlan0 est le nom de votre interface). Vous pouvez également vérifier les connexions de votre gestionnaire de réseau en utilisant nmcli comme ceci : nmcli c qui devrait montrer quelque chose comme ceci :

     $ nmcli c
      NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
      Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET   
      Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
      Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Fri 05 Apr 2013 10:04:05 PM VET   
      Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 09 Apr 2013 06:31:10 AM VET   

Je mentionne la méthode du gestionnaire de réseau parce qu'il y a quelques cas où utiliser wpa_supplicant ne fonctionneront tout simplement pas (problèmes entre le routeur et la carte sans fil, problèmes de sécurité, etc.) Dans mon cas, toutes les tentatives d'utiliser wpa_supplicant sur un PC n'a pas fonctionné, mais sur un autre, il a fonctionné la première fois que j'ai essayé. J'affiche donc les deux méthodes pour aider dans chaque cas et pour que les utilisateurs puissent décider plus facilement laquelle ils veulent.

Partie 3 : Connexion facile via nmcli

Bien que nous ayons parlé des moyens de s'y connecter sans gestionnaire de réseau, il y a aussi le cas d'utiliser nmcli (version CLI du gestionnaire de réseau) lorsque cela s'applique. Pour ce faire, nous procédons comme suit :

  1. Vérifiez l'ESSID que nous pouvons voir :

    nmcli dev wifi
  2. Vérifiez le nom de l'ESSID et nous procédons à son utilisation sur la ligne suivante, y compris le mot de passe nécessaire (ceci inclut les mots de passe de type WEP et WPA) :

    nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD

    Voici un exemple où je me connecte à l'ESSID Linux5G

    screenshot

    Si vous disposez de plusieurs périphériques sans fil sur votre ordinateur, vous pouvez spécifier lequel utiliser à l'aide de l'option ifname comme suit :

    nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME

    Par exemple dans mon cas, le nom de l'appareil est wlp9s0 J'utiliserais donc cette ligne pour spécifier le périphérique que je vais utiliser pour me connecter :

    screenshot

De plus amples informations sur nmcli peuvent être obtenues en utilisant le paramètre help. Par exemple, si vous vouliez savoir ce qu'est nmcli dev vous devez taper nmcli dev help . Si vous voulez en savoir plus sur nmcli dev wifi vous devez taper nmcli dev wifi help et ainsi de suite.

Partie 4 : Se déconnecter d'un routeur sans fil

Il existe plusieurs façons d'y parvenir :

  • Déconnexion par "force" : sudo ifconfig wlan0 down

    Cela désactivera l'interface de votre carte sans fil (le pilote est désactivé). Pour l'activer, tapez simplement ifconfig wlan0 up suivi d'un sudo dhclient wlan0 . Il apparaîtra toujours comme connecté s'il est visualisé par Network Manager mais il n'y aura en fait aucune connexion au routeur. Essayer de ping lancera un connect: Network is unreachable erreur.

  • Libérer l'IP DHCP : sudo dhclient -r wlan0

    N'oubliez pas de faire sudo dhclient wlan0 pour vous réattribuer une IP.

  • Déconnectez-vous à l'aide du gestionnaire de réseau : nmcli nm enable false

    Où nm est le paramètre de nmcli qui gère et définit les états de Network Manager. L'option enable peut être vrai o faux ce qui signifie que si elle est définie sur faux toutes les connexions réseau gérées par Network Manager seront déconnectées. notez que nmcli n'a pas besoin des permissions root.

Pour voir l'état de Network Manager, tapez nmcli nm il devrait afficher quelque chose de similaire à ceci :

      $ nmcli nm
      RUNNING         STATE           WIFI-HARDWARE   WIFI       WWAN-HARDWARE   WWAN      
      running         connected       enabled         enabled    enabled         enabled   

Une autre façon d'activer ou de désactiver la connexion (connexion/déconnexion) est de procéder comme suit :

nmcli c down id NAME` - Will disconnect the connection NAME  

nmcli c up id NAME` - Will connect the connection NAME

Partie 5 : Suppression d'une connexion

Il est assez facile de supprimer une connexion existante. Tapez d'abord dans le terminal :

nmcli c

Cela donnera quelque chose comme ceci :

$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   
Xcentral                  f51a5a64-8a91-47d6-897c-28efcd84d2b0   802-11-wireless   Fri 22 Mar 2013 02:25:54 PM VET  

Maintenant, disons que nous voulons supprimer Xcentral nous procédons ensuite à la commande suivante :

nmcli c delete id Xcentral

Après avoir fait cela, cela devrait ressembler à quelque chose comme ceci :

$ nmcli c delete id Xcentral
$ nmcli c
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Realtek                   9ded7740-ad29-4c8f-861f-84ec4da87f8d   802-3-ethernet    Tue 05 Mar 2013 01:18:31 AM VET   
PrivateSys                86b2b37d-4835-44f1-ba95-46c4b747140f   802-11-wireless   Sun 21 Apr 2013 07:52:57 PM VET   
pepe                      9887664b-183a-45c0-a81f-27d5d0e6d9d8   802-11-wireless   Thu 18 Apr 2013 02:43:05 AM VET   
Virus                     3f8ced55-507b-4558-a70b-0d260441f570   802-11-wireless   Tue 16 Apr 2013 11:33:24 AM VET   
Intel                     e25b1fd8-c4ff-41ac-a6bc-22620296f01c   802-3-ethernet    Sun 21 Apr 2013 08:12:29 PM VET   

Toutes les connexions sont stockées dans /etc/NetworkManager/system-connections/

Si je regardais dans ce dossier en ce moment, je verrais les fichiers suivants :

$ ls /etc/NetworkManager/system-connections
Intel  pepe  PrivateSys  Realtek  Virus

C'est uniquement dans le cas où vous souhaitez modifier/supprimer/ajouter une connexion à la main.

Partie 6 : Connexion automatique lors de la connexion

Pour les cas où vous souhaitez vous connecter automatiquement à un routeur sans fil, voici les étapes à suivre :

  1. Ouvrez le interface fichier :

    sudo nano /etc/network/interfaces
  2. Ajoutez les informations suivantes (en supposant que votre interface s'appelle wlan0) :

    auto wlan0
    iface wlan0 inet static
    address ASSIGNED_IP
    netmask 255.255.255.0
    gateway THE_GATEWAY
    wireless-essid YOURSSID
    wireless-key WIRELESSKEY_HERE
  3. Enregistrez le fichier et redémarrez l'ordinateur. Notez que ce fichier sera enregistré dans un fichier texte brut auquel vous pourrez accéder depuis le même ordinateur.

Bonus : Trouvez le nom de votre connexion sans fil Style GUI

  1. Cliquez sur le gestionnaire de réseau et allez dans Informations sur la connexion

    screenshot

  2. Allez dans l'onglet qui contient votre carte sans fil

    screenshot

Dans cette image, cette carte réseau est nommée eth1 (à l'intérieur de la parenthèse) mais cela peut être différent pour chaque utilisateur. Normalement, ce serait un wlan (comme wlan0, wlan1, wlan2...) mais cela peut aussi être eth1, eth2, etc. Vous devez donc voir quel nom il porte.

Un autre moyen de trouver le nom rapidement est de taper iwconfig qui affichera toutes les cartes réseau sans fil disponibles.

41voto

qeek Points 505

C'est assez facile si vous savez comment faire.

Montre les points d'accès wlan disponibles :

nmcli dev wifi

Connectez-vous au point d'accès :

nmcli dev wifi connect $ACCESS_POINT password $PASSWORD

13voto

non sequitor Points 4092

Wicd est livré avec 2 utilitaires en ligne de commande : wicd-curses et wicd-cli (ils peuvent nécessiter une installation séparée) wicd-curse vous permet de configurer/connecter la déconnexion aux réseaux (filaires ou sans fil) de manière interactive, wicd-cli offre la même fonctionnalité mais par le biais d'options en ligne de commande uniquement (utile pour scripts) Je l'utilise dans un cron job pour contourner certains bugs d'autoreconnexion :

wicd-cli -y -c -m MY_NETWORK_SSID

Vous pouvez aussi "simplement" avoir une configuration wpa_supplicant du type :

/etc/network/interface :

auto wlan0 
iface wlan0 inet dhcp 
wpa-conf /etc/wpa.conf

et (à titre d'exemple WPA) /etc/wpa.conf :

network={
  ssid="MY_NETWORK_SSID"
  proto=RSN
  key_mgmt=WPA_PSK
  pairwise=CCMP_TKIP
  group=CCMP_TKIP
  psk="my network key in the clear"
}

il y a beaucoup de considérations à prendre en compte, dont le problème de sécurité d'avoir la clé pré-partagée en clair (wpa_supplicant peut vous permettre de présenter une clé cryptée ou peut-être simplement obscurcie, vérifiez la page de manuel), le fait de rendre ce fichier possédé et lisible uniquement par root est également une atténuation.

I pensez à avoir plusieurs sections de réseau permettrait de connecter plusieurs réseaux, par ordre de priorité.

5voto

Grant Johnson Points 968

J'utilise wicd-curses qui, à mon avis, est de loin l'interface utilisateur la plus simple.

wicd-curses

Vous devez utiliser le (touche flèche droite -> ) pour définir les configurations ; tout le reste est évident d'après les instructions à l'écran.

Bien sûr, vous devez trouver un moyen d'aller sur Internet sans wicd Je suppose que vous avez déjà résolu ce problème, sinon vous ne posteriez pas de message.

(Ce n'est pas opportun pour le PO, je le poste juste pour la postérité puisque cette question apparaît toujours sur Google. Pour les chercheurs de Google : si vous lisez ceci depuis un café ou l'ordinateur d'un ami ou autre, peut-être pouvez-vous utiliser un fil quelque part pour obtenir wicd-curses installé avec sudo apt-get install wicd-curses (puis assurez-vous de le tester sur un réseau connu pour fonctionner avant de partir !)

0voto

Andrew Richards Points 191

Solution pour Ubuntu 18.04+ sans utiliser NetworkManager

Je travaille sur un RasPi avec un serveur Ubuntu 20.04 fraîchement installé : NetworkManager ( nmcli / nmtui etc) n'est pas déjà installé, donc une approche plus manuelle peut être utile, au moins pour commencer.

La mise en réseau sous-jacente d'Ubuntu semble être prise en charge par netplan à partir de la version 18.04, c'est donc ce qui doit être configuré pour ces versions. Un outil utile Visite guidée fournit une réponse ; en bref (par exemple),

Déterminez le nom de votre interface wifi,

$ ip a

(généralement, c'est wlan0 - cherchez ceci dans la sortie de ip a ). Modifiez maintenant /etc/netplan/50-cloud-init.yaml ,

$ sudo vi /etc/netplan/50-cloud-init.yaml

(d'autres éditeurs sont disponibles etc.) et ajoutez un wifis: comme ci-dessous,

network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
    version: 2
    wifis:
        wlan0:
            optional: true
            access-points:
                "network-name-here":
                    password: "wifi-password-here"
            dhcp4: true

permet de le faire avec,

$ sudo netplan apply

enfin, vérifiez que votre wifi est maintenant opérationnel en recherchant l'icône wlan0 l'interface et les adresses IP correspondantes,

$ ip a

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X