Comment gérer les connexions réseau Linux à partir de la ligne de commande –
Le nmcli
La commande vous permet d’exploiter la puissance de Linux NetworkManager directement à partir de la ligne de commande, ce qui le rend parfait pour les serveurs sans environnement de bureau et sans administration de shell SSH à distance.
Le nmcli
La commande n’est pas nouvelle, elle a été publiée en 2010. Avec la commande ip, elle remplace le vénérable – mais obsolète – ifconfig
. Les vieilles habitudes ont la vie dure, et de nombreux administrateurs système utilisent encore ifconfig
. Ils savent déjà comment l’utiliser, il n’y a pas de courbe d’apprentissage et ils ont juste besoin de faire le travail. Alors pourquoi apprendre un autre outil ?
Eh bien, finalement, ifconfig
sera abandonné par les distributions donc c’est un changement qui arrive, qu’on le veuille ou non. Mais nmcli
a ses propres astuces intéressantes qui valent la peine de découvrir ce qu’il peut offrir.
Comme toutes les commandes CLI, nmcli
accepte les paramètres de ligne de commande. Les paramètres sont regroupés en trois catégories.
nmcli
les rubriques sont :
- Aider: Fournit de courts textes d’aide sur le
ncmcli
commandes - Général: Récupère l’état et la configuration de NetworkManager
- La mise en réseau: interroge, active ou désactive les connexions réseau
- Radio: interroge, active ou désactive les connexions réseau Wi-Fi
- Surveiller: Surveille NetworkManager et les changements d’état des connexions réseau
- Connexion: manipule directement les interfaces réseau, notamment en les activant et en les désactivant, en ajoutant de nouvelles connexions et en supprimant les connexions existantes
- Dispositif: Modifie les paramètres du périphérique réseau et connecte ou déconnecte un périphérique d’une connexion existante
- Secret: Registres
nmcli
en tant qu’agent secret NetworkManager. Parce quenmcli
le fait automatiquement, c’est très rarement utilisé.
Sommaire
Premiers pas avec nmcli
Assurons-nous que NetworkManager est installé, en cours d’exécution et que nous pouvons nous y connecter avec nmcli
. Nous utiliserons le status
action de la general
section.
nmcli general status
En fait, status est l’action par défaut pour general, nous aurions donc pu laisser ce mot hors de la commande. Mais nous avons vérifié que nmcli
—et donc NetworkManager—est installé et opérationnel. Découvrons un peu plus cet ordinateur.
Nous pouvons répertorier tous les profils de connexion réseau en mémoire et sur disque en utilisant l’action show de la section connection :
nmcli connection show
La sortie est plus large que la fenêtre du terminal. Nos résultats étaient :
NAME UUID TYPE DEVICE Wired connection 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 ethernet-enp0s8 9aad8efa-3427-4a5c-bef5-270340cd33d0 ethernet enp0s8 ethernet-enp0s9 5bc49cef-bc3d-4832-9073-460b408932b6 ethernet enp0s9
La machine de test utilisée pour cet article exécute une version de pré-lancement d’Ubuntu 21.10. Il contient trois adaptateurs réseau, nommés enp0s3
, enp0s8
, et enp0s9
.
Comprendre la plomberie
Une connexion réseau permet à votre ordinateur de communiquer via un réseau avec un autre appareil. Intérieurement, nmcli
contient toutes les informations concernant une connexion réseau dans un objet de données qu’il appelle une connexion.
Une nmcli
La connexion encapsule toutes les informations relatives à cette connexion, y compris les informations sur la couche liaison de données et les informations d’adressage IP. Vous pouvez penser à nmcli
comme les détails de configuration pour les connexions réseau du monde réel.
Pour atteindre le monde extérieur, une connexion doit utiliser un périphérique d’interface réseau, tel qu’une carte réseau. Une connexion est liée à un périphérique. Lorsqu’un appareil est actif et capable de recevoir ou de transmettre des données, la connexion est dite active
ou alors up
. L’état inactif correspondant est appelé, sans surprise, inactive
ou alors down
.
Ajout de connexions réseau
Avec nmcli
vous pouvez créer une connexion réseau et définir certaines de ses options de configuration avec une seule commande. Sur cet ordinateur de test, il n’y a pas de connexion sur enp0s8
, le nom de notre connexion filaire (Ethernet) numéro 2. Nous allons ajouter une connexion à enp0s8
. Étant donné que nous apportons des modifications au système, vous devrez utiliser sudo
:
sudo nmcli connection add type ethernet ifname enp0s8
Cette commande utilise le add
action de la connection
section. Nous avons utilisé le type
possibilité de demander une connexion Ethernet, et le ifname
(nom de l’interface) pour spécifier le périphérique d’interface réseau que nous voulons que cette connexion utilise.
Vérifions ce qui s’est passé :
nmcli connection show
NAME UUID TYPE DEVICE Wired connection 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 ethernet-enp0s8 9aad8efa-3427-4a5c-bef5-270340cd33d0 ethernet enp0s8 ethernet-enp0s9 5bc49cef-bc3d-4832-9073-460b408932b6 ethernet enp0s9 ethernet-enp0s8-1 b874aa09-3a25-4f52-b20b-1b95d9741be9 ethernet --
Notre nouvelle connexion, ethernet-enp0s8-1
, a été créé. Son identifiant universel unique (UUID) a été attribué et le type de connexion est Ethernet. Nous pouvons maintenant le rendre actif avec le up
commander. Le up
La commande doit être suivie du nom de la connexion ou de son UUID :
nmcli connection up ethernet-enp0s8-1
Vérifions à nouveau nos connexions actives :
nmcli connection show --active
NAME UUID TYPE DEVICE Wired connection 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3 ethernet-enp0s8-1 b874aa09-3a25-4f52-b20b-1b95d9741be9 ethernet enp0s8 ethernet-enp0s9 5bc49cef-bc3d-4832-9073-460b408932b6 ethernet enp0s9
Notre nouvelle connexion, ethernet-enp0s8-1
, est maintenant actif et lié au enp0s8
périphérique d’interface réseau.
Ajustement des connexions
Bien sûr, ncmli
vous permet également de modifier les paramètres des connexions existantes. Supposons que nous voulions basculer une interface réseau du protocole DHCP (Dynamic Host Configuration Protocol) à l’utilisation d’une adresse IP statique. Pour correspondre à notre réseau, nous avons besoin d’une adresse IP fixe de 192.168.1.40 pour notre nouvelle connexion.
Pour y parvenir, vous devez émettre deux commandes. Un pour définir l’adresse IP et un pour définir la méthode de connexion pour obtenir une adresse IP sur manuel :
nmcli connection modify ethernet-enp0s8-1 ipv4.address 192.168.1.40/24
nmcli connection modify ethernet-enp0s8-1 ipv4.method manual
Le « /24 » que nous fournissons avec l’adresse IP est le masque de sous-réseau dans le routage inter-domaines sans classe (CIDR). Dans ce contexte, « /24 » signifie « 255.255.255.0 ».
Les modifications ne prendront effet que lorsque la connexion sera « rebondie ». C’est-à-dire désactivé et remis en ligne. La première commande coupe la connexion et la seconde la rétablit.
nmcli connection down ethernet-enp0s8-1
nmcli connection up ethernet-enp0s8-1
Si vous souhaitez annuler la modification et passer d’une adresse IP statique à une adresse IP DHCP, utilisez le auto
option au lieu de manual
.
nmcli connection modify ethernet-enp0s8-1 ipv4.method auto
Gestion d’appareils
Le nmcli
device
contient des actions (commandes) qui vous permettent de gérer les interfaces réseau installées sur votre ordinateur. Pour voir l’état de toutes les interfaces réseau sur votre ordinateur, utilisez :
nmcli device status
Affichage des détails de l’appareil
Pour examiner les détails d’une interface réseau, nous utilisons le show
action de la device
section. Si vous ne fournissez pas de nom d’appareil, les détails de tous les appareils sont récupérés et affichés. Vous pouvez faire défiler et faire défiler vers le haut et vers le bas pour les consulter.
Jetons un coup d’oeil à enp0s8
, l’appareil utilisé par notre nouvelle connexion. Nous pouvons vérifier que l’adresse IP utilisée est l’adresse que nous avons précédemment demandée.
nmcli device show enp0s8
GENERAL.DEVICE: enp0s8 GENERAL.TYPE: ethernet GENERAL.HWADDR: 08:00:27:79:A7:68 GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: ethernet-enp0s8-1 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/8 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.1.40/24 IP4.GATEWAY: -- IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 102 IP6.ADDRESS[1]: fe80::3241:457d:cd1c:2436/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 102
Un écran d’informations est renvoyé par nmcli
. Certains des éléments couramment utiles sont :
- DISPOSITIF: Le nom de l’appareil que nous examinons.
- TAPER: Le type de connexion utilisant cet appareil.
- HWADDR: L’adresse MAC de la carte d’interface.
- ETAT: si cet appareil dispose d’une connexion en direct.
- IP4.ADRESSE[1]: L’adresse IP et le masque de sous-réseau de cet appareil.
- CONNEXION: Le nom de la connexion utilisant cet appareil.
L’éditeur interactif nmcli
Bien que nmcli
est un outil en ligne de commande, il possède un éditeur interactif élémentaire. L’action d’édition dans la section connexion ouvre l’éditeur interactif sur la connexion que vous passez en ligne de commande :
nmcli connection edit ethernet-enp0s8-1
Un texte d’aide est affiché à l’écran et l’invite de commande « nmcli> » s’affiche.
si vous tapez print
et appuyez sur « Entrée », nmcli
répertorie toutes les propriétés associées à la connexion. Il y en a beaucoup. Vous pouvez les faire défiler pour les consulter.
Modifions à nouveau notre connexion en utilisant DHCP. Nous utiliserons les paramètres « ipv4 ». Pour ce faire, nous devons « aller » dans les paramètres IPv4.
goto ipv4
La propriété que nous voulons changer est method
. Nous voulons le mettre en automatique.
set method auto
L’invite suivante s’affiche :
Do you also want to clear 'ipv4.addresses'? [yes]:
Si vous n’effacez pas l’adresse IP, la prochaine fois que vous définirez cette connexion pour utiliser une adresse IP statique, elle utilisera celle qui a été définie précédemment. Si vous l’effacez, vous devrez définir une nouvelle adresse IP si jamais vous modifiez cette connexion en utilisant une adresse IP statique. Tapez « oui » ou appuyez simplement sur « Entrée » pour l’effacer. Tapez « non » et appuyez sur « Entrée » pour le conserver.
Nous devons enregistrer nos modifications :
save
Tapez « quit » pour quitter l’éditeur interactif. Si vous ne voulez pas quitter, tapez « back » pour revenir au niveau principal et continuez à utiliser l’éditeur.
Il y a beaucoup plus dans l’homme
Le nmcli
commande peut faire beaucoup plus. Il a un grand nombre de paramètres et d’options de ligne de commande. Tellement en fait, que sa page de manuel s’étend sur plus de 1200 lignes. Examinez-les pour voir quoi d’autre nmcli
peut faire pour vous.
Et bien sûr, si vous administrez à distance des connexions réseau, ne désactivez pas la connexion sur laquelle vous vous êtes connecté. Ce n’est jamais amusant.