Skip to content

Réseau sur Debian ​

Configuration réseau sous Debian : adresse IPv4 fixe et serveurs DNS personnalisés. Valable sans changement pour Debian 11 (Bullseye), 12 (Bookworm) et 13 (Trixie) — les trois versions utilisent par défaut le même gestionnaire réseau sur une installation serveur.

Source : Debian Wiki — NetworkConfiguration, Debian Wiki — resolv.conf

Quel outil réseau est utilisé par défaut ? ​

Sur une installation Debian sans environnement de bureau (serveur, minimal), l'installateur met en place ifupdown — le fichier /etc/network/interfaces reste le mécanisme par défaut sur Debian 11, 12 et 13. Un changement vers systemd-networkd par défaut a été discuté pour Trixie mais n'a pas été retenu : ifupdown reste le choix par défaut.

CasOutil par défaut
Installation serveur / minimale (11, 12, 13)ifupdown (/etc/network/interfaces)
Installation avec bureau (GNOME, KDE...)NetworkManager (nmtui / nmcli)
Installé manuellement (optionnel, toutes versions)systemd-networkd

Ce guide couvre la méthode par défaut (ifupdown), la plus courante sur un serveur, avec une section dédiée à NetworkManager si l'environnement de bureau est installé.

Identifier son interface réseau ​

bash
ip a
# ou, pour ne lister que les noms d'interfaces
ip -brief link

Depuis Debian 9 (Stretch), les interfaces ne s'appellent plus eth0 mais suivent une nomenclature prévisible basée sur le matériel (ex. enp0s31f6, ens18 en environnement virtualisé). Le nom exact à utiliser dans les exemples ci-dessous est celui renvoyé par ip a.

Adresse IPv4 fixe avec ifupdown ​

Configuration temporaire (test, non persistante) ​

Utile pour tester une adresse sans modifier de fichier — perdue au prochain redémarrage ou ifdown/ifup :

bash
sudo ip addr add 192.168.1.50/24 dev ens18
sudo ip route add default via 192.168.1.1

Configuration permanente ​

Éditer /etc/network/interfaces (ou déposer un fichier dans /etc/network/interfaces.d/, inclus automatiquement) :

# /etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
    address 192.168.1.50/24
    gateway 192.168.1.1
    dns-nameservers 1.1.1.1 8.8.8.8
  • auto ens18 : démarre l'interface automatiquement au boot.
  • address : accepte la notation CIDR (/24) directement — plus besoin de netmask séparé.
  • gateway : passerelle par défaut (facultatif si aucune route par défaut n'est nécessaire).
  • dns-nameservers : voir la section Serveurs DNS personnalisés ci-dessous — nécessite resolvconf pour être appliqué automatiquement.

Pour revenir en DHCP, remplacer simplement inet static (et les lignes associées) par :

iface ens18 inet dhcp

Appliquer la configuration ​

bash
# Redémarre uniquement l'interface concernée (recommandé, évite de couper une session SSH sur une autre interface)
sudo ifdown ens18 && sudo ifup ens18

# Ou, plus radical : redémarre tout le service réseau
sudo systemctl restart networking

Sur une connexion SSH distante, tester d'abord avec ip addr add/ip route add (méthode temporaire) avant de rendre le changement permanent, pour éviter de se couper l'accès en cas d'erreur de sous-réseau ou de passerelle.

Serveurs DNS personnalisés ​

Sur une installation serveur standard, systemd-resolved n'est pas activé par défaut et resolvconf/openresolv n'est pas installé par défaut. /etc/resolv.conf est alors un simple fichier statique, généralement écrit par dhclient lors d'une négociation DHCP.

Méthode recommandée : dns-nameservers + resolvconf ​

C'est la méthode qui reste cohérente avec /etc/network/interfaces et survit à un changement d'IP ou à un redémarrage :

bash
sudo apt install resolvconf

Puis, dans le stanza de l'interface concernée (voir exemple plus haut) :

iface ens18 inet static
    address 192.168.1.50/24
    gateway 192.168.1.1
    dns-nameservers 1.1.1.1 8.8.8.8

Tout sur une seule ligne, séparés par des espaces (ne pas oublier le s final à dns-nameservers). Une fois resolvconf installé, ifup régénère automatiquement /etc/resolv.conf à partir de cette directive à chaque activation de l'interface.

Méthode simple : éditer /etc/resolv.conf directement ​

Sans resolvconf, il est possible d'éditer /etc/resolv.conf à la main — fonctionne tant qu'aucun autre mécanisme (DHCP sur une autre interface, dhclient) ne vient l'écraser :

# /etc/resolv.conf
nameserver 1.1.1.1
nameserver 8.8.8.8

Sur un serveur en IP fixe (pas de DHCP actif), cette méthode est suffisante et ne sera pas réécrite. Sur une interface encore en DHCP par ailleurs, préférer dns-nameservers + resolvconf pour éviter que le fichier soit écrasé à la prochaine négociation de bail.

Vérifier la résolution DNS ​

bash
cat /etc/resolv.conf
resolvectl status 2>/dev/null || echo "systemd-resolved non actif (normal par défaut sur Debian serveur)"
dig debian.org
# ou, si dig n'est pas installé (paquet dnsutils)
getent hosts debian.org

Alternative : NetworkManager (si installé) ​

Si le paquet network-manager est présent (environnement de bureau, ou installé manuellement sur un serveur), la configuration passe par nmcli plutôt que par /etc/network/interfaces :

bash
# Lister les connexions
nmcli connection show

# Adresse IPv4 fixe + passerelle + DNS
sudo nmcli connection modify "Wired connection 1" \
  ipv4.method manual \
  ipv4.addresses 192.168.1.50/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "1.1.1.1 8.8.8.8"

# Appliquer
sudo nmcli connection up "Wired connection 1"

Ou en mode interface texte interactive : sudo nmtui.

Ne pas mélanger ifupdown et NetworkManager sur la même interface : les deux services entrent en conflit s'ils tentent de gérer la même carte réseau.

Différences entre Debian 11, 12 et 13 ​

AspectDebian 11Debian 12Debian 13
Outil réseau par défaut (serveur)ifupdownifupdownifupdown
Nommage des interfacesPrévisible (enpXsY)Prévisible (enpXsY)Prévisible (enpXsY)
systemd-resolved par défautNonNonNon
resolvconf par défautNonNonNon
/etc/network/interfaces.d/SupportéSupportéSupporté

Aucune différence de syntaxe entre les trois versions pour les exemples ci-dessus : un fichier /etc/network/interfaces écrit pour Debian 11 fonctionne tel quel sur Debian 12 et 13.

Dépannage rapide ​

bash
ip a                    # état des interfaces et adresses actuelles
ip route                # table de routage, vérifier la passerelle par défaut
ip route get 8.8.8.8    # quelle interface/passerelle serait utilisée pour sortir
cat /etc/resolv.conf     # DNS effectivement utilisés
journalctl -u networking --no-pager   # logs du service ifupdown

Bonnes pratiques ​

  • Toujours tester une IP/passerelle avec ip addr add/ip route add avant de la rendre permanente sur un accès distant (SSH).
  • Installer resolvconf dès que dns-nameservers est utilisé dans /etc/network/interfaces, sinon le réglage n'est appliqué qu'au hasard des mécanismes déjà en place.
  • Utiliser ifdown/ifup ciblés sur l'interface modifiée plutôt que systemctl restart networking en SSH, pour ne pas couper toutes les interfaces d'un coup.
  • Ne jamais faire cohabiter ifupdown et NetworkManager sur la même interface.
  • Documenter les IP fixes attribuées (ex. dans un inventaire Ansible ou un fichier hosts) : rien dans /etc/network/interfaces n'empêche un doublon d'adresse sur le réseau.

Publié sous lience MIT.