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

113

Puisque le gestionnaire de réseau me trouble tellement, je veux le remplacer (éventuellement wicdou NMde ppa: volanin ).

Je ne sais pas comment se connecter et se 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.

utilisateur7048
la source
2
Si vous allez jouer avec le gestionnaire de connexion réseau de votre système, je vous recommande de le faire lorsque vous êtes connecté via Ethernet câblé, ce qui risque moins de perdre sa connexion et qu'il est plus facile de le configurer à partir de la ligne de commande, le cas échéant.
Ryan Thompson
J'utilise wicd-curses, que je trouve de loin l'interface utilisateur la plus simple. Vous devez utiliser <kbd> → </ kbd> (touche fléchée droite ->) pour définir les configurations. tout le reste est évident à partir des instructions à l'écran.
isomorphismes

Réponses:

139

Ceci s'applique à 12.04+ car ce sont ceux que j'ai pu tester mais qui pourraient également être utilisés dans les versions antérieures. J'ai séparé ce guide en plusieurs parties, composées de:

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

Les lignes de commande suivantes peuvent être utilisées pour connecter et 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é (dans les cas où vous pourriez démarrer Ubuntu en mode de récupération):

Selon votre version d'Ubuntu, vous devrez le démarrer de l'une des manières 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 les 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 correspond à Scan. Wlan0 est ma carte sans fil mais peut différer d’un utilisateur à l’autre. Certains ont eth0, d’autres wlan2 .. Vous devez sudoexécuter cette option. Pour connaître le nom de votre carte sans fil, tapez simplement iwlist et appuyez sur TAB. Ceci devrait compléter automatiquement la ligne avec le nom de la carte réseau. Vous pouvez également taper iwconfiget trouver le nom dans la liste qui apparaîtra.)

    Si vous ne connaissez pas le nom de votre type de périphérique sans fil: iwconfigce qui vous montrera vos périphériques câblés / sans fil et leurs noms. Ils pourraient être quelque chose comme wlan0, wlan1, eth1, eth2 ..

  2. La recherche vous montrera tous les points d'accès (AP) 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 de l'utiliser dhclientpour obtenir une adresse 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, alors:

    iwconfig wlan0 essid CYREX key PASSWORD
    

    Cela devrait se connecter en utilisant le mot de passe que vous avez donné là-bas.

    Encore une fois, faites dhclientaprès la connexion pour vous assurer d'obtenir une adresse IP assignée.

  3. Assurez-vous que vous êtes correctement connecté est toujours bon, alors exécutez iwconfigpour 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'adresse IP qui vous est attribuée. Si ce n'est pas le cas et que vous obtenez une erreur telle que Interface ne prend pas en charge l'analyse, essayez les 2 options suivantes:

    • Testez si votre interface est UP: sudo ifconfig wlan0 up
    • Essayez d'ajouter sudolors de l'analyse:sudo iwlist wlan0 s
    • Essayez d’arrêter l’appareil puis de le sauvegarder:

      sudo ifconfig wlan0 down  
      sudo ifconfig wlan0 up
      

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

Dans les cas où le routeur sans fil a un mot de passe WPA / WPA2, il existe plusieurs façons de le faire. Je mentionnerai 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 peut varier d’un utilisateur à l’autre. Certains ont eth0, d’autres wlan2 .. Vous devez sudoexécuter cette option. Pour trouver le nom de votre carte sans fil, tapez simplement iwlist et appuyez sur TAB. Ceci devrait compléter automatiquement la ligne avec le nom de la carte réseau. Vous pouvez également taper iwconfiget trouver le nom dans la liste qui apparaîtra.)

    Si vous ne connaissez pas le nom de votre type de périphérique sans fil: iwconfigce qui vous montrera vos périphériques câblés / sans fil et leurs noms. Ils pourraient être quelque chose comme wlan0, wlan1, eth1, eth2 ..

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

Partie 2.1 GUIDE DU FOURNISSEUR WPA: Connexion à un routeur WPA avec wpa_supplicant

  1. Tapez ce qui suit dans le terminal (en supposant que le wpasupplicantpaquet installé installe toutes les commandes nécessaires, nous allons utiliser ici):

    wpa_passphrase SSID PASSWORD > CONFIG_FILE
    

    Exemple: wpa_passphrase Virus LinuxFTW > wpa.conf

    Virus est le nom de mon routeur, LinuxFTW est mon mot de passe et wpa.confle fichier dans lequel je souhaite stocker toutes ces informations. Notez que vous pouvez enregistrer le fichier à un autre endroit. De nombreux utilisateurs l'enregistrent à la /etc/wpa_supplicant.confplace de wpa.conf. Les données du fichier wpa.conf devraient ressembler à ceci:

    network={  
            ssid="Virus"  
            #psk="LinuxFTW"  
            psk=1d538d505f48205589ad25b2ca9f52f9cbb67687e310c58a8dd940ccc03fbfae  
    }  
    
  2. Jusqu'ici, nous devrions connaître le nom de notre interface de carte sans fil (par exemple: Wlan0, eth2, Wlan2 ...). Nous devons maintenant savoir quel pilote est utilisé. pour cela on tape:

    wpa_supplicant
    

    Il devrait nous montrer beaucoup d’informations, mais il y aura une section intitulée ** Drivers * qui montre tous les drivers disponibles (ceux-ci sont disponibles lors de la compilation 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)  
    

    Toute la liste est hostap, hermes, madwifi, wext, broadcom, câblé, roboswitch, bsd, ndis. Cela peut changer en fonction de la manière dont la wpa_supplicantcompilation a été effectuée, mais celle qui s'affiche pour moi devrait être similaire à celle de votre système. La plupart des utilisateurs choisiront le wextpilote.

  3. Alors maintenant que nous avons le nom de la carte d'interface sans fil et le nom du pilote, nous procédons à la connexion à l'aide du 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
    

    Où se -itrouve le nom de votre carte d'interface, -coù se trouve votre fichier de configuration et -Dle nom du pilote que vous utiliserez pour vous connecter. S'il se connecte correctement, appuyez sur CTRL+ Cpour l'annuler, puis réexécutez la ligne. Cette fois, nous l'envoyons en arrière-plan -Bafin de pouvoir continuer à utiliser le terminal:

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

    Après cela, faites simplement un sudo dhclient wlan0pour obtenir une adresse IP du routeur.

  4. Certains utilisateurs ont signalé avoir supprimé le hachage et ne laisser 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 en ajoutant le 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 de l'administrateur de réseau: Connexion à un routeur WPA avec Network Manager

La bonne chose à propos du gestionnaire de réseau, c’est qu’il est livré avec quelques bons scripts et outils. Deux d'entre eux sont nmcliet create_connection(script Neat Python 3) que nous allons utiliser dans ce cas.

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

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

    SECURITY est le type de sécurité utilisé par le routeur (WPA, WEP), PASSWORD 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
    

    Crée une connexion pour Network Manager qui devrait ressembler à 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 adresse IP attribuée par le routeur. Sinon, faites simplement sudo dhclient wlan0(en supposant que wlan0 soit le nom de votre interface). Vous pouvez également vérifier les connexions de votre gestionnaire de réseau en utilisant nmcli comme ceci: ce nmcli cqui devrait ressembler à 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 le comportement du gestionnaire de réseau car il existe quelques cas où l'utilisation wpa_supplicantne fonctionnera tout simplement pas (problèmes entre routeur et carte sans fil, problèmes de sécurité, etc.). Dans mon cas, toutes les tentatives d'utilisation wpa_supplicantsur un PC ne fonctionnaient pas, mais sur un autre, cela fonctionnait la première fois. Je poste donc les deux méthodes pour aider sur chaque cas et pour permettre aux utilisateurs de choisir plus facilement celle qu'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 existe également le cas de l'utilisation de nmcli (version CLI du gestionnaire de réseau), le cas échéant. Pour ce faire, nous procédons comme suit:

  1. Vérifiez pour voir quel ESSID on peut voir:

    nmcli dev wifi
    
  2. Vérifiez le nom de l'ESSID et nous l'utilisons à la ligne suivante, y compris le mot de passe requis pour cela (cela comprend les mots de passe de type WEP et WPA):

    nmcli dev wifi connect ESSID_NAME password ESSID_PASSWORD
    

    Voici un exemple de connexion à l’ESSID Linux5G

    capture d'écran

    Si vous avez plusieurs périphériques sans fil sur votre ordinateur, vous pouvez spécifier lequel utiliser à l'aide du ifnameparamètre, de la manière suivante:

    nmcli dev wifi connect ESSID_NAME mot de passe ESSID_PASSWORD ifname WIRELESS_DEVICE_NAME

    Par exemple, dans mon cas, le nom du périphérique est celui-ci wlp9s0. J'utiliserais donc cette ligne pour spécifier le périphérique avec lequel je vais utiliser pour me connecter:

    capture d'écran

Pour plus d'informations sur nmcli, utilisez le paramètre help. Par exemple, si vous vouliez en savoir plus sur nmcli devvous tapez nmcli dev help. Si vous vouliez en savoir plus sur nmcli dev wifi, vous taperiez nmcli dev wifi help, etc.

Partie 4: Déconnexion d'un routeur sans fil

Il y a plusieurs façons d'accomplir cela:

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

    Cela désactive l'interface de votre carte sans fil (le pilote s'éteint). Pour activer, tapez simplement ifconfig wlan0 upsuivi de a sudo dhclient wlan0. Il sera toujours affiché comme connecté s'il est visualisé par Network Manager, mais il n'y aura en réalité aucune connexion au routeur. Essayer de pingjeter une connect: Network is unreachableerreur.

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

    N'oubliez pas de faire sudo dhclient wlan0pour vous attribuer une adresse IP à nouveau.

  • Déconnectez-vous à l'aide de Network Manager: 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 enablepeut être vraie ou fausse , ce qui signifie que si défini sur faux , toutes les connexions réseau gérées par Network Manager seront déconnectées. notez que nmcli n'a pas besoin d'autorisations root.

Pour voir l'état du type de gestionnaire de réseau 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   

Vous pouvez également activer ou désactiver la connexion (connexion / déconnexion) en procédant 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

Supprimer une connexion existante est assez facile. Premier type dans le terminal:

nmcli c

Il va sortir quelque chose comme ça:

$ 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 allons ensuite avec la commande suivante:

nmcli c delete id Xcentral

Après avoir fait cela devrait ressembler à quelque chose comme ça:

$ 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 devais regarder dans ce dossier maintenant, je verrais les fichiers suivants:

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

Ceci est uniquement dans le cas où vous souhaitez éditer / supprimer / ajouter une connexion à la main.

Partie 6: Connexion automatique lors de la connexion

Si vous souhaitez vous connecter automatiquement à un routeur sans fil, procédez comme suit:

  1. Ouvrez le interfacefichier:

    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 cela sera sauvegardé dans un fichier texte brut accessible depuis le même ordinateur.

Bonus: Trouvez le nom de votre connexion sans fil Style de l'interface graphique

  1. Cliquez sur le gestionnaire de réseau et accédez à Informations sur la connexion.

    capture d'écran

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

    capture d'écran

Dans cette image, cette carte réseau s'appelle eth1 (entre parenthèses), 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. Il faut donc voir quel nom il a.

Une autre façon de trouver rapidement le nom est en tapant, iwconfigce qui affichera toute la carte réseau sans fil disponible.

Luis Alvarado
la source
3
Si vous avez trouvé un autre moyen de ligne de commande pour trouver le nom de l'interface sans fil. après avoir tapé iwlistonglet deux fois et le terminal iwilst
tapera
2
Je pouvais bien deviner que l'auteur vérifiait si la réponse était complète.
jobin
1
@douglaswalrath Vous utiliseriez des guillemets, comme dans "Sugar Fairy"
Luis Alvarado
Merci pour le guide complet! Je me demande s’il existe d’autres moyens de créer un lien vers un réseau sans fil au démarrage sans que le mot de passe ne soit écrit en texte brut dans un fichier ... Avez-vous une idée?
Michele
1
@Michele cette autre réponse explique comment empêcher l'enregistrement du mot de passe dans l'historique askubuntu.com/a/279333/237654
Hector Correa
36

C'est assez facile si vous savez comment le faire.

Afficher les points d'accès wlan disponibles:

nmcli dev wifi

Se connecter avec un point d'accès:

nmcli dev wifi connect $ACCESS_POINT password $PASSWORD
Ikem Krueger
la source
2
C’est bien mieux que la réponse positive d’Alvarado, qui ne fonctionnait pas dans mon cas (Linux Mint 17.1). Mais c'est assez simple et ça marche!
Thorben
1
a travaillé pour moi sur Linux Mint 17
David Okwii
C'est la réponse gagnante pour moi. Juste rapide, facile et sécurisé. Je vous remercie!.
GTRONICK
3
@Thorben IMHO ce n'est pas la réponse acceptée, car network manager command line interfacene répond pas à la question d'origine How to connect without a network manager.
Vorac
+1 car cette réponse, bien que ne s'appliquant pas à la question, aiderait quelqu'un en mode de récupération et vous fera gagner du temps. Excellent travail user82110.
Luis Alvarado,
13

wicd est fourni avec 2 utilitaires de ligne de commande: wicd-curses et wicd-cli (ils peuvent nécessiter une installation séparée). wicd-curse vous permet de configurer / connecter une déconnexion à des réseaux (filaires ou sans fil) de manière interactive. wicd-cli offre les mêmes fonctionnalités mais options de ligne de commande uniquement (utile pour les scripts) Je l'utilise dans un travail cron pour contourner certains bugs liés à la reconnexion automatique:

wicd-cli -y -c -m MY_NETWORK_SSID

Aussi, vous pouvez "juste" avoir une configuration wpa_supplicant quelque chose comme:

/ etc / network / interface:

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

et (comme 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 de nombreuses considérations à prendre en compte, notamment le souci de la sécurité de la clé pré-partagée en texte clair (wpa_supplicant peut vous permettre de présenter une clé cryptée ou peut-être simplement obfusquée, consultez la page de manuel), ce qui rend également le fichier détenu et lisible uniquement. par root est une atténuation.

Je pense qu'avoir plusieurs sections de réseau permettrait de connecter plusieurs réseaux, par ordre de priorité.

Philippe
la source
wicd n'est pas installé par défaut, il n'est pas sûr qu'il soit compatible avec le gestionnaire de réseau.
Guntbert
c'est incompatible. Vous pouvez suivre help.ubuntu.com/community/WICD
tr33hous
5

J'utilise wicd-curses, que je trouve de loin l'interface utilisateur la plus simple.

wicd-curses

Vous devez utiliser la (flèche vers la droite ->) pour définir les configurations. tout le reste est évident à partir des instructions à l'écran.

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

(Ceci n’est pas opportun pour le PO, mais pour la postérité car cette question revient toujours sur Google. Pour les chercheurs de Google: si vous lisez ceci dans un café ou sur l’ordinateur d’un ami ou quelque chose du genre, vous pouvez peut-être utiliser un fil quelque part pour obtenir wicd-cursesinstallé avec sudo apt-get install wicd-curses, puis assurez-vous de le tester sur un réseau qui est connu pour travailler avant de partir)!

isomorphismes
la source