Aller au contenu
Administration Linux medium

Maîtriser la commande ip : gestion réseau moderne

15 min de lecture

Quand vous devez diagnostiquer un problème réseau, ajouter une adresse IP ou configurer une route, la commande ip est l’outil moderne et officiel sous Linux. Elle remplace les commandes historiques ifconfig, route, arp et netstat, dépréciées depuis 2009. Avec une syntaxe cohérente OBJET + COMMANDE, ip permet de gérer tous les aspects du réseau depuis un seul outil.

  • Afficher et interpréter la configuration réseau (interfaces, IP, routes)
  • Ajouter, modifier et supprimer des adresses IP
  • Gérer les routes statiques et la passerelle par défaut
  • Activer/désactiver des interfaces réseau
  • Diagnostiquer les problèmes de connectivité
  • Consulter le cache ARP (voisins réseau)

ip centralise la gestion réseau, mais d’autres commandes restent utiles pour des diagnostics spécifiques :

CommandeSpécialitéQuand l’utiliser
ipConfiguration et état réseauInterfaces, IP, routes, ARP
ssSockets et connexionsPorts en écoute, connexions établies
pingTest de connectivitéVérifier qu’un hôte répond
mtrTraceroute temps réelDiagnostiquer latence et pertes
digRequêtes DNSTester la résolution de noms

Correspondance avec les commandes dépréciées :

Ancienne commandeÉquivalent ip
ifconfigip addr, ip link
ifconfig eth0 upip link set eth0 up
route -nip route show
route add default gwip route add default via
arp -aip neigh show
netstat -iip -s link

🧠 Modèle mental — ip : le couteau suisse réseau moderne

La commande ip suit une structure cohérente : vous choisissez un OBJET (ce que vous voulez gérer) puis une COMMANDE (ce que vous voulez faire). C'est comme parler à un administrateur : "ip, sur l'OBJET adresse, fais l'ACTION show".

Modèle mental ip

Points clés

  • ip remplace ifconfig, route, arp et netstat — commandes dépréciées depuis 2009
  • Tout est OBJET + COMMANDE : ip addr show, ip route add, ip link set
  • Les objets ont des abréviations : addr→a, link→l, route→r, neigh→n
  • Les modifications sont temporaires sauf si persistées dans la config système

Règles d'or

1
ip addr ≠ ip link addr gère les adresses IP, link gère l'état physique de l'interface (up/down, MTU)
2
Toujours vérifier après modification ip addr show ou ip route show pour confirmer que le changement a pris effet
3
Les changements sont volatils Au reboot, tout est perdu sauf si configuré dans /etc/network/interfaces ou netplan

Vocabulaire essentiel

addr
Objet pour gérer les adresses IP (IPv4/IPv6) des interfaces
link
Objet pour gérer l'état et les propriétés des interfaces (up/down, MTU, MAC)
route
Objet pour gérer la table de routage (routes statiques, passerelle)
neigh
Objet pour gérer le cache ARP/NDP (voisins réseau)
CIDR
Notation IP/masque comme 192.168.1.10/24 (équivalent netmask 255.255.255.0)
scope
Portée de l'adresse : global (routable), link (locale), host (loopback)
📚 Pour aller plus loin — 4 options avancées
netns
Objet pour gérer les namespaces réseau (isolation réseau conteneurs)
vrf
Virtual Routing and Forwarding — tables de routage séparées
xfrm
Framework de transformation IPsec (tunnels chiffrés)
maddr
Adresses multicast des interfaces

La logique de ip est simple : vous choisissez ce que vous voulez gérer (l’objet) puis ce que vous voulez faire (la commande).

Fenêtre de terminal
ip [OPTIONS] OBJET COMMANDE [ARGUMENTS]

Les 4 objets essentiels :

ObjetAbréviationCe qu’il gère
addraAdresses IP des interfaces
linklÉtat physique des interfaces (up/down, MTU)
routerTable de routage
neighnCache ARP/NDP (voisins réseau)

Les commandes principales :

CommandeCe qu’elle fait
show (ou s)Afficher (par défaut si omis)
addAjouter
delSupprimer
setModifier (pour link)
flushVider tout
replaceRemplacer si existe

Options globales utiles :

OptionDescriptionExemple
-cSortie coloréeip -c addr
-4 / -6IPv4 ou IPv6 uniquementip -4 addr
-oUne ligne par enregistrementip -o addr
-jSortie JSONip -j addr
-sStatistiques détailléesip -s link
-brFormat brief (résumé)ip -br addr
Fenêtre de terminal
# Afficher toutes les adresses IP
ip addr show
ip a # Forme courte
# Afficher la table de routage
ip route show
ip r # Forme courte
# Afficher les interfaces actives
ip link show up
# Ajouter une adresse IP
sudo ip addr add 192.168.1.100/24 dev eth0
# Activer une interface
sudo ip link set eth0 up
# Ajouter une route par défaut
sudo ip route add default via 192.168.1.1

L’objet addr gère les adresses IPv4 et IPv6 assignées aux interfaces.

Fenêtre de terminal
# Toutes les interfaces
ip addr show
# Une interface spécifique
ip addr show dev eth0
# Format résumé (plus lisible)
ip -br addr show
# Sortie exemple :
# lo UNKNOWN 127.0.0.1/8 ::1/128
# eth0 UP 192.168.1.50/24 fe80::1/64
Fenêtre de terminal
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.50/24 brd 192.168.1.255 scope global eth0
inet6 fe80::5054:ff:fe12:3456/64 scope link
ÉlémentSignification
<UP,LOWER_UP>Interface activée, lien physique OK
mtu 1500Taille max des paquets (standard Ethernet)
state UPÉtat opérationnel
link/etherAdresse MAC
inet 192.168.1.50/24Adresse IPv4 avec masque
scope globalAdresse routable (vs link = locale)
inet6 ... scope linkAdresse IPv6 lien-local
Fenêtre de terminal
# Ajouter une adresse (le masque CIDR est obligatoire !)
sudo ip addr add 192.168.1.100/24 dev eth0
# Ajouter une adresse secondaire
sudo ip addr add 192.168.1.101/24 dev eth0
# Supprimer une adresse (masque obligatoire aussi)
sudo ip addr del 192.168.1.100/24 dev eth0
# Supprimer TOUTES les adresses d'une interface (⚠️ danger)
sudo ip addr flush dev eth0

L’objet link gère l’état physique des interfaces : activation, MTU, adresse MAC.

Fenêtre de terminal
# Toutes les interfaces
ip link show
# Seulement les interfaces UP
ip link show up
# Avec statistiques (paquets, erreurs)
ip -s link show eth0
Fenêtre de terminal
# Activer
sudo ip link set eth0 up
# Désactiver
sudo ip link set eth0 down
Fenêtre de terminal
# MTU standard : 1500
# Jumbo frames : 9000 (pour réseaux hautes performances)
sudo ip link set eth0 mtu 9000
# Vérifier
ip link show eth0 | grep mtu

L’objet route gère la table de routage : comment atteindre chaque réseau.

Fenêtre de terminal
# Table de routage complète
ip route show
# Sortie exemple :
# default via 192.168.1.1 dev eth0
# 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.50
# Route vers une destination spécifique (très utile pour le diagnostic)
ip route get 8.8.8.8
# 8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.50
ÉlémentSignification
default via 192.168.1.1Passerelle par défaut
192.168.1.0/24 dev eth0Réseau local accessible directement
proto kernelRoute créée automatiquement par le kernel
scope linkDestination sur le même lien physique
src 192.168.1.50Adresse source utilisée pour ce réseau
Fenêtre de terminal
# Ajouter la passerelle par défaut
sudo ip route add default via 192.168.1.1
# Ajouter une route vers un réseau distant
sudo ip route add 10.0.0.0/8 via 192.168.1.254
# Ajouter une route via une interface (sans gateway)
sudo ip route add 172.16.0.0/12 dev eth1
# Supprimer une route
sudo ip route del 10.0.0.0/8
# Remplacer une route existante (évite l'erreur "File exists")
sudo ip route replace default via 192.168.1.1

L’objet neigh gère le cache ARP (IPv4) et NDP (IPv6) : la correspondance entre adresses IP et adresses MAC.

Fenêtre de terminal
ip neigh show
# Sortie exemple :
# 192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE
# 192.168.1.100 dev eth0 lladdr aa:bb:cc:dd:ee:ff STALE

États possibles :

ÉtatSignification
REACHABLECommunication récente, entrée valide
STALEPas de communication récente, peut être obsolète
DELAYEn attente de confirmation
PROBEEnvoi de requêtes ARP
FAILEDRésolution échouée
PERMANENTEntrée statique
Fenêtre de terminal
# Ajouter une entrée statique
sudo ip neigh add 192.168.1.50 lladdr aa:bb:cc:dd:ee:ff dev eth0
# Supprimer une entrée
sudo ip neigh del 192.168.1.50 dev eth0
# Vider tout le cache (force la redécouverte)
sudo ip neigh flush all
Fenêtre de terminal
# Compteurs de paquets et erreurs
ip -s link show eth0
# Sortie (extrait) :
# RX: bytes packets errors dropped overrun mcast
# 1234567 8901 0 0 0 123
# TX: bytes packets errors dropped carrier collsns
# 7654321 4567 0 0 0 0

Indicateurs à surveiller :

CompteurNormalProblème si élevé
errors0Problème physique (câble, driver)
dropped~0Saturation, buffer trop petit
overrun0CPU ne suit pas le débit
carrier0Problème de lien physique
collsns0 (full-duplex)Mauvaise négociation
Fenêtre de terminal
# Observer les événements réseau (nouvelles IP, changements de route...)
ip monitor all
# Filtrer par type
ip monitor address # Seulement les changements d'adresse
ip monitor route # Seulement les changements de route
ip monitor link # Seulement les changements d'interface
Fenêtre de terminal
# Toutes les adresses en JSON
ip -j addr show
# Parser avec jq
ip -j addr show | jq '.[].ifname' # Noms d'interfaces
ip -j addr show | jq '.[].addr_info[].local' # Toutes les IP
ip -j route show | jq '.[] | select(.dst=="default")' # Route par défaut

Ces recettes couvrent les cas d'usage les plus fréquents. Cliquez sur un pattern pour voir la formule complète et un exemple prêt à copier.

Lister toutes les interfaces Base

Voir l'état de toutes les interfaces réseau

ip a
Formule ip addr show
Exemple
ip a
Afficher une interface spécifique Base

Voir les détails d'une seule interface

ip addr show dev eth0
Formule ip addr show dev <interface>
Exemple
ip addr show dev eth0
Paramètres
  • interface — Nom de l'interface (eth0, ens33, enp0s3...)
Lister uniquement les interfaces UP Base

Filtrer les interfaces actives

ip link show up
Formule ip link show up
Exemple
ip link show up
Afficher les adresses IPv4 uniquement Base

Exclure les adresses IPv6 de l'affichage

ip -4 a
Formule ip -4 addr show
Exemple
ip -4 a
Alternative : ip -6 addr pour IPv6 uniquement
Ajouter une adresse IP Base

Attribuer une adresse IP à une interface

sudo ip addr add 192.168.1.100/24 dev eth0
Formule sudo ip addr add <ip>/<cidr> dev <interface>
Exemple
sudo ip addr add 192.168.1.100/24 dev eth0
Paramètres
  • ip — Adresse IP à attribuer
  • cidr — Masque en notation CIDR (24 = 255.255.255.0)
  • interface — Interface cible
Éviter si : Oublier le masque CIDR provoque une erreur
Supprimer une adresse IP Base

Retirer une adresse IP d'une interface

sudo ip addr del 192.168.1.100/24 dev eth0
Formule sudo ip addr del <ip>/<cidr> dev <interface>
Exemple
sudo ip addr del 192.168.1.100/24 dev eth0
Paramètres
  • ip/cidr — Adresse exacte avec son masque
  • interface — Interface concernée
Éviter si : Ne pas supprimer l'IP utilisée pour votre connexion SSH !
Vider toutes les adresses d'une interface Inter.

Supprimer toutes les IP d'un coup

sudo ip addr flush dev eth0
Formule sudo ip addr flush dev <interface>
Exemple
sudo ip addr flush dev eth0
Paramètres
  • interface — Interface à vider
Éviter si : Dangereux sur une interface de production !
Activer une interface Base

Passer une interface en état UP

sudo ip link set eth0 up
Formule sudo ip link set <interface> up
Exemple
sudo ip link set eth0 up
Paramètres
  • interface — Interface à activer
Désactiver une interface Base

Passer une interface en état DOWN

sudo ip link set eth0 down
Formule sudo ip link set <interface> down
Exemple
sudo ip link set eth0 down
Paramètres
  • interface — Interface à désactiver
Éviter si : Ne pas désactiver l'interface de votre connexion SSH !
Changer le MTU Inter.

Modifier la taille maximale des paquets

sudo ip link set eth0 mtu 9000
Formule sudo ip link set <interface> mtu <taille>
Exemple
sudo ip link set eth0 mtu 9000
Paramètres
  • interface — Interface cible
  • taille — MTU en octets (1500 par défaut, 9000 pour jumbo frames)
Afficher la table de routage Base

Voir toutes les routes configurées

ip r
Formule ip route show
Exemple
ip r
Voir la route vers une destination Base

Déterminer par où passent les paquets vers une IP

ip route get 8.8.8.8
Formule ip route get <destination>
Exemple
ip route get 8.8.8.8
Paramètres
  • destination — IP ou réseau de destination
Ajouter une route statique Inter.

Créer une route vers un réseau distant

sudo ip route add 10.0.0.0/8 via 192.168.1.1
Formule sudo ip route add <réseau>/<cidr> via <passerelle>
Exemple
sudo ip route add 10.0.0.0/8 via 192.168.1.1
Paramètres
  • réseau/cidr — Réseau de destination
  • passerelle — IP du routeur vers ce réseau
Définir la passerelle par défaut Base

Configurer la route par défaut (gateway)

sudo ip route add default via 192.168.1.1
Formule sudo ip route add default via <passerelle>
Exemple
sudo ip route add default via 192.168.1.1
Paramètres
  • passerelle — IP du routeur par défaut
Supprimer une route Inter.

Retirer une route de la table

sudo ip route del 10.0.0.0/8
Formule sudo ip route del <réseau>/<cidr>
Exemple
sudo ip route del 10.0.0.0/8
Paramètres
  • réseau/cidr — Route à supprimer
Afficher le cache ARP Base

Voir les correspondances IP ↔ MAC connues

ip n
Formule ip neigh show
Exemple
ip n
Ajouter une entrée ARP statique Avancé

Forcer une association IP ↔ MAC

sudo ip neigh add 192.168.1.50 lladdr aa:bb:cc:dd:ee:ff dev eth0
Formule sudo ip neigh add <ip> lladdr <mac> dev <interface>
Exemple
sudo ip neigh add 192.168.1.50 lladdr aa:bb:cc:dd:ee:ff dev eth0
Paramètres
  • ip — Adresse IP du voisin
  • mac — Adresse MAC (format aa:bb:cc:dd:ee:ff)
  • interface — Interface réseau
Vider le cache ARP Inter.

Forcer la redécouverte des voisins

sudo ip neigh flush all
Formule sudo ip neigh flush all
Exemple
sudo ip neigh flush all
Statistiques d'interface Base

Voir les compteurs de paquets et erreurs

ip -s link show eth0
Formule ip -s link show <interface>
Exemple
ip -s link show eth0
Paramètres
  • interface — Interface à analyser
Sortie JSON pour scripts Inter.

Obtenir les données en format parsable

ip -j addr show | jq '.[].ifname'
Formule ip -j addr show
Exemple
ip -j addr show | jq '.[].ifname'
Alternative : ip -j route show pour les routes en JSON

Ces erreurs courantes peuvent faire perdre du temps ou causer des dégâts. Les pièges les plus critiques sont affichés en premier.

Couper sa propre connexion SSH

sudo ip link set eth0 down (sur la connexion SSH en cours)

Danger
Le piège : sudo ip link set eth0 down (sur la connexion SSH en cours)
Symptôme : Connexion SSH perdue, accès console requis
Cause : Désactiver l'interface coupe toutes les connexions qui passent par elle
Correction : Vérifier quelle interface est utilisée avant de la désactiver
ip route get <votre_ip> # Pour vérifier l'interface utilisée
Flush sur la mauvaise interface

sudo ip addr flush dev eth0

Danger
Le piège : sudo ip addr flush dev eth0
Symptôme : Toutes les IP supprimées, machine inaccessible
Cause : flush supprime TOUTES les adresses sans confirmation
Correction : Double-vérifier l'interface et avoir un accès console de secours
Oublier le masque CIDR

sudo ip addr add 192.168.1.100 dev eth0

Attention
Le piège : sudo ip addr add 192.168.1.100 dev eth0
Symptôme : Erreur "RTNETLINK answers: Invalid argument" ou adresse avec /32
Cause : Sans masque, Linux assume /32 (une seule IP) ou refuse la commande
Correction : Toujours spécifier le masque en notation CIDR
sudo ip addr add 192.168.1.100/24 dev eth0
Modifications non persistantes

sudo ip addr add ... (puis reboot)

Attention
Le piège : sudo ip addr add ... (puis reboot)
Symptôme : Configuration perdue après redémarrage
Cause : ip fait des modifications en mémoire uniquement
Correction : Configurer via netplan, /etc/network/interfaces ou NetworkManager
# Ubuntu: éditer /etc/netplan/*.yaml puis netplan apply
Mauvais masque lors de la suppression

sudo ip addr del 192.168.1.100/32 dev eth0 (alors que c'était /24)

Attention
Le piège : sudo ip addr del 192.168.1.100/32 dev eth0 (alors que c'était /24)
Symptôme : Erreur "RTNETLINK answers: Cannot assign requested address"
Cause : Le masque doit correspondre exactement à celui de l'adresse ajoutée
Correction : Vérifier le masque avec ip addr show avant de supprimer
ip addr show dev eth0 # Vérifier le masque exact
Confondre link et addr

ip link show pour voir les adresses IP

Info
Le piège : ip link show pour voir les adresses IP
Symptôme : Les adresses IP ne sont pas affichées
Cause : link gère l'état physique, addr gère les adresses IP
Correction : Utiliser ip addr show pour voir les adresses
ip addr show
Route default déjà existante

sudo ip route add default via 192.168.1.1

Info
Le piège : sudo ip route add default via 192.168.1.1
Symptôme : Erreur "RTNETLINK answers: File exists"
Cause : Une route par défaut existe déjà
Correction : Supprimer l'ancienne route ou utiliser replace
sudo ip route replace default via 192.168.1.1
Utiliser ifconfig au lieu de ip

ifconfig eth0 192.168.1.100

Info
Le piège : ifconfig eth0 192.168.1.100
Symptôme : Fonctionne mais syntaxe dépréciée, pas de notation CIDR native
Cause : ifconfig est déprécié depuis 2009, fonctionnalités limitées
Correction : Migrer vers ip addr/link/route
sudo ip addr add 192.168.1.100/24 dev eth0

🔧 Quand ça ne marche pas

Méthodes de debug

Lister toutes les interfaces

Voir l'état de chaque interface réseau

ip -c addr show

Vérifier le routage vers une IP

Voir par quelle interface et passerelle passent les paquets

ip route get 8.8.8.8

Afficher les statistiques d'erreur

Détecter les problèmes physiques (erreurs, drops)

ip -s link show eth0

Surveiller les changements en temps réel

Observer les événements réseau

ip monitor

Vérifier les voisins réseau

Voir si la résolution ARP fonctionne

ip neigh show

Erreurs fréquentes

RTNETLINK answers: Operation not permitted
Causes possibles
  • Commande exécutée sans sudo
  • Capacités réseau restreintes (conteneur)
Diagnostic
  1. Vérifier si root/sudo
  2. Vérifier les capabilities du conteneur
✅ Solution

Ajouter sudo ou vérifier les permissions du conteneur

Vérifier avec :
sudo ip addr show
RTNETLINK answers: File exists
Causes possibles
  • Adresse IP déjà assignée
  • Route déjà existante
Diagnostic
  1. ip addr show dev <interface>
  2. ip route show
✅ Solution

Supprimer l'existant ou utiliser replace

Vérifier avec :
ip route replace default via <gateway>
RTNETLINK answers: No such device
Causes possibles
  • Nom d'interface incorrect
  • Interface non créée
Diagnostic
  1. ip link show pour lister les interfaces existantes
✅ Solution

Vérifier le nom exact de l'interface

Vérifier avec :
ip link show
RTNETLINK answers: Network is unreachable
Causes possibles
  • Pas de route vers le réseau
  • Interface down
Diagnostic
  1. ip route show
  2. ip link show <interface>
✅ Solution

Ajouter une route ou activer l'interface

Vérifier avec :
ip route get <destination>
RTNETLINK answers: Invalid argument
Causes possibles
  • Syntaxe incorrecte
  • Masque CIDR manquant ou invalide
Diagnostic
  1. Vérifier la syntaxe de la commande
  2. Vérifier le format de l'IP
✅ Solution

Corriger la syntaxe, ajouter le masque CIDR

Vérifier avec :
man ip-address
Cannot assign requested address
Causes possibles
  • Adresse inexistante lors de la suppression
  • Mauvais masque CIDR
Diagnostic
  1. ip addr show dev <interface> pour voir les adresses exactes
✅ Solution

Utiliser l'adresse et le masque exacts

Vérifier avec :
ip addr show dev eth0

📋 Cheatsheet ip

📝 Syntaxe :

ip [objet] [commande] Structure de base
ip a Alias de ip addr show
ip r Alias de ip route show
ip l Alias de ip link show
ip n Alias de ip neigh show

🚀 Commandes types :

Lister toutes les interfaces Voir l'état de toutes les interfaces réseau
ip a
Afficher une interface spécifique Voir les détails d'une seule interface
ip addr show dev eth0
Lister uniquement les interfaces UP Filtrer les interfaces actives
ip link show up
Afficher les adresses IPv4 uniquement Exclure les adresses IPv6 de l'affichage
ip -4 a
Ajouter une adresse IP Attribuer une adresse IP à une interface
sudo ip addr add 192.168.1.100/24 dev eth0

⚙️ Options

-c Sortie colorée ip -c addr
-4 / -6 IPv4 ou IPv6 uniquement ip -4 addr
-o Une ligne par enregistrement ip -o addr
-j Sortie JSON ip -j addr
-s Statistiques détaillées ip -s link
-br Format brief (résumé) ip -br addr

🔍 Filtres

scope global Adresses routables ip addr show scope global
scope link Adresses locales au lien ip addr show scope link
state UP/DOWN État de l'interface ip link show state UP
/etc/netplan/01-config.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Fenêtre de terminal
# Appliquer
sudo netplan apply

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

8 questions
5 min.
80% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  1. Syntaxe unifiée : ip OBJET COMMANDE — cohérent pour tout le réseau
  2. 4 objets essentiels : addr (IP), link (interface), route (routage), neigh (ARP)
  3. Abréviations : ip a = ip addr show, ip r = ip route show
  4. Masque CIDR obligatoire : 192.168.1.100/24, jamais sans le /24
  5. Modifications temporaires : tout est perdu au reboot sans persistance
  6. ip route get : le diagnostic le plus utile pour comprendre le routage
  7. JSON avec -j : parfait pour l’automatisation et le scripting
  8. Remplace tout : ifconfig, route, arp, netstat -i sont obsolètes

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.