Débuter avec nmcli

NetworkManager est un service gérant les connexions réseau et nmcli l'outil qui va permettre de le contrôler. A travers nmcli il devient possible de configurer et visualiser les connexions réseau.

Cette article présente une première approche de cette utilitaire en se cantonnant uniquement sur la gestion des connexions avec une interface Ethernet.

Pour une meilleur compréhension, voici le vocabulaire lié à nmcli :

  • device : il s'agit du périphérique réseau (Ethernet, WiFi, ...)
  • connection : il s'agit d'un profil de connexion liés à un device. En d'autres termes c'est la configuration du device (par exemple : DHCP, adresse IP static, gateway, ...). Il peut y avoir plusieurs profils pour un même périphérique, ce qui est intéressant lorsque l'on est itinérant

Gestion des périphériques (device)

Obtenir la liste des interfaces réseau :

nmcli device status
PÉRIPHÉRIQUE  TYPE      ÉTAT      CONNEXION   
enp2s0        ethernet  connecté  home    
lo            loopback  non-géré  -- 

Obtenir les informations de connexion d'une interface :

nmcli device show enp2s0
GENERAL.PÉRIPHÉRIQUE:                   enp2s0
GENERAL.TYPE:                           ethernet
GENERAL.ADR.-MAT.:                      00:00:00:00:00:00
GENERAL.MTU:                            1500
GENERAL.ÉTAT:                           100 (connecté)
GENERAL.CONNEXION:                      home
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.PORTEUSE:              marche
IP4.ADRESSE[1]:                         192.168.0.14/24
IP4.PASSERELLE:                         192.168.0.254
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4
IP6.ADRESSE[1]:                         fe80::921c:d995:1b1f:55fe/64
IP6.PASSERELLE:                         --

Gérer la connexion des interfaces réseau :

# arreter l'interface enp2s0
nmcli device disconnect enp2s0
# lancer l'interface enp2s0
nmcli device connect enp2s0

Gestion des profils de connexion (connection)

Obtenir la liste des connexions :

# tout les profils
nmcli connection show
NOM     UUID                                  TYPE            PÉRIPHÉRIQUE       
enp2s0  697ea5a7-a9d4-3984-9ea9-913728ba665a  802-3-ethernet  enp2s0
home    9d60e56b-1f95-48c2-b625-c8e1c30cc44c  802-3-ethernet  --
work    f42326a7-8c54-4efc-b115-26ec47312bde  802-3-ethernet  --
# ou uniquement ceux qui sont actifs
nmcli connection show --active
NOM     UUID                                  TYPE            PÉRIPHÉRIQUE 
enp2s0  697ea5a7-a9d4-3984-9ea9-913728ba665a  802-3-ethernet  enp2s0    

Configurer une IP dynamique (protocole DHCP) :

nmcli connection add type ethernet con-name "home" ifname enp2s0

Configurer une IP statique :

nmcli con add type ethernet con-name "work" ifname enp2s0 ip4 192.168.50.10/24 gw4 192.168.50.254

Monter une connexion :

nmcli connection up "home"

Modifier un paramètre de connexion :

# modifier l'adresse IP
nmcli connection modify ipv4.addresses 192.168.0.33/24

Gestion du hostname

Obtenir le hostname courant :

nmcli general hostname
localhost.localdomain

Modifier le hostname (ici le renommer en servername.com):

nmcli general hostname servername.com

Gestion des serveurs DNS à utiliser

Utiliser un serveur DNS :

nmcli con mod enp2s0 +ipv4.dns 8.8.8.8
# prendre en compte la modification en rechargeant
# la configuration de l'interface
nmcli con up enp2s0

Pour vérifier :

cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 8.8.8.8

Enlever un serveur DNS :

nmcli con mod enp2s0 -ipv4.dns 8.8.8.8

Gestion global du réseau

# desactiver le reseau
nmcli networking off
# reactiver le reseau
nmcli networking on
# obtenir l'etat du reseau
nmcli networking connectivity

Pour aller plus loin ...

Comme vous l'avez peut être remarqué, il n'est pas nécessaire d'écrire le nom des paramètres en entier pour que les commandes fonctionnent. Ainsi les commandes suivantes sont equivalentes :

nmcli connection show
nmcli con show
nmcli c s

nmcli bénéficie aussi de la complétion, donc il est possible d'utiliser la touche [Tab] pour aller plus vite (ou obtenir la liste des paramètres possible).

Pour obtenir de l'aide en général :

nmcli help
# ou via le manuel :
man nmcli

Ou spécifique à un paramètre :

nmcli con help
# ou via le manuel :
man nm-settings
By @Mikael FLORA in
Tags : #nmcli, #network,