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.
| Cas | Outil 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
ip a
# ou, pour ne lister que les noms d'interfaces
ip -brief linkDepuis 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 :
sudo ip addr add 192.168.1.50/24 dev ens18
sudo ip route add default via 192.168.1.1Configuration 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.8auto ens18: démarre l'interface automatiquement au boot.address: accepte la notation CIDR (/24) directement — plus besoin denetmasksé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écessiteresolvconfpour être appliqué automatiquement.
Pour revenir en DHCP, remplacer simplement inet static (et les lignes associées) par :
iface ens18 inet dhcpAppliquer la configuration
# 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 networkingSur 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 :
sudo apt install resolvconfPuis, 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.8Tout 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.8Sur 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
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.orgAlternative : 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 :
# 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
| Aspect | Debian 11 | Debian 12 | Debian 13 |
|---|---|---|---|
| Outil réseau par défaut (serveur) | ifupdown | ifupdown | ifupdown |
| Nommage des interfaces | Prévisible (enpXsY) | Prévisible (enpXsY) | Prévisible (enpXsY) |
systemd-resolved par défaut | Non | Non | Non |
resolvconf par défaut | Non | Non | Non |
/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
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 ifupdownBonnes pratiques
- Toujours tester une IP/passerelle avec
ip addr add/ip route addavant de la rendre permanente sur un accès distant (SSH). - Installer
resolvconfdès quedns-nameserversest utilisé dans/etc/network/interfaces, sinon le réglage n'est appliqué qu'au hasard des mécanismes déjà en place. - Utiliser
ifdown/ifupciblés sur l'interface modifiée plutôt quesystemctl restart networkingen 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/interfacesn'empêche un doublon d'adresse sur le réseau.
