systemd-networkd est le gestionnaire de réseau intégré à systemd permettant de configurer les liaisons Ethernet, les adresses, les routes, les ponts, les VLAN et autres périphériques réseau. Pour une connexion filaire de base, la configuration est simple : identifiez l’interface, créez un .networkfichier de configuration, assurez-vous qu’aucun autre gestionnaire n’utilise la même interface, démarrez le service systemd-networkdet vérifiez le résultat.
Ce guide utilise le protocole DHCP sur une interface Ethernet filaire. Si vous êtes connecté à la machine via SSH, utilisez une console locale ou une gestion hors bande avant de changer de gestionnaire de réseau, car le transfert peut interrompre temporairement la connexion.
1. Vérifiez votre interface Ethernet et votre gestionnaire de réseau actuel.
Commencez par lister les liens que systemd connaît :
networkctl list
Recherchez l'interface filaire, généralement nommée de la forme `/dev/s` enp3s0, eno1`/dev/s` ou `/dev/ eth0s`. Vous pouvez également exécuter la commande `npm run dev` ip link. Ne copiez pas aveuglément le nom de l'interface d'exemple.

Ensuite, vérifiez si NetworkManager est actif :
systemctl status NetworkManager
NetworkManager et systemd-networkd peuvent coexister lorsqu'ils gèrent des interfaces différentes , mais il est déconseillé de les laisser gérer la même liaison Ethernet. La documentation actuelle de systemd.network explique comment .networkles fichiers sont associés aux interfaces et comment networkd détermine la propriété des interfaces.

2. Créez un profil réseau DHCP
Les profils d'administrateur local doivent être placés dans /etc/systemd/network/. Créez le répertoire s'il n'existe pas déjà, puis modifiez un fichier tel que20-wired.network :
sudo mkdir -p /etc/systemd/network
sudo nano /etc/systemd/network/20-wired.network
Pour une connexion Ethernet normale qui reçoit son adresse de votre routeur ou serveur DHCP, utilisez :
[Match]
Name=enp3s0
[Network]
DHCP=yes
Remplacez enp3s0par votre interface réelle. Les fichiers doivent avoir l'extension .network. Lorsqu'un lien contient plusieurs fichiers, systemd-networkd utilise le premier fichier correspondant par ordre alphanumérique ; un nom spécifique tel que `/usr/local/` 20-wired.networkest donc plus facile à interpréter qu'un nom générique.

Facultatif : utiliser une adresse IPv4 statique
Si la machine nécessite une adresse fixe, remplacez-la DHCP=yespar des valeurs appropriées à votre réseau :
[Match]
Name=enp3s0
[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=1.1.1.1
DNS=9.9.9.9
Ne réutilisez pas ces adresses d'exemple à moins qu'elles ne correspondent à votre sous-réseau. Consultez la documentation officielle de systemd.network DHCP=pour plus d' Address=informations sur les options de routage avancées.Gateway=DNS=
3. Activer systemd-networkd
Une fois le profil prêt, activez networkd et démarrez-le immédiatement :
sudo systemctl enable --now systemd-networkd
Si un autre service gère actuellement cette même interface Ethernet, effectuez le transfert depuis une console locale. Pour un hôte qui abandonne complètement NetworkManager, vous pouvez l'arrêter et le désactiver avec :
sudo systemctl disable --now NetworkManager
Ne désactivez pas NetworkManager si vous en avez encore besoin pour le Wi-Fi ou d'autres interfaces. systemd-networkdIl configure le réseau IP, mais l'authentification Wi-Fi nécessite généralement un composant distinct tel que iwd ou wpa_supplicant.

4. Configurez le DNS avec systemd-resolved si nécessaire.
systemd-resolvedCe n'est pas une exigence pour networkd lui-même, mais il s'intègre bien avec networkd et peut utiliser des serveurs DNS obtenus via DHCP. Si votre distribution n'utilise pas déjà un autre résolveur, activez-le :
sudo systemctl enable --now systemd-resolved
La documentation de systemd-resolved recommande de créer un lien /etc/resolv.confvers son fichier stub lorsque resolved est le résolveur système. Vérifiez d'abord :
readlink -f /etc/resolv.conf
Si vous souhaitez intentionnellement que systemd-resolved fournisse resolv.conf, utilisez :
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Ne remplacez pas cette opération /etc/resolv.confsi votre distribution ou un autre outil DNS la gère délibérément.

5. Rechargez la configuration et reconfigurez l'interface.
Après avoir modifié un .networkfichier, rechargez la configuration de networkd. Vous pouvez ensuite reconfigurer explicitement le lien cible :
sudo networkctl reload
sudo networkctl reconfigure enp3s0
Remplacez par le nom de votre interface. Le manuelenp3s0 officiel de networkctl documente les deux commandes. Une commande complète recharge également le service, mais elle est généralement plus ciblée.systemctl restart systemd-networkdnetworkctl

6. Vérifiez que systemd-networkd fonctionne.
Vérifier l'état de l'interface :
networkctl status enp3s0
Pour une connexion DHCP fonctionnelle, vous devriez voir la liaison configurée avec une adresse IP, une passerelle par défaut et généralement des informations DNS.

Ensuite, vérifiez le routage et la connectivité :
ip route
ping -c 3 1.1.1.1
Si le ping IP fonctionne mais que les sites web ou les noms d'hôtes ne se résolvent pas, testez le DNS avec resolvectl query example.comsystemd-resolved. Si l'interface reste inaccessible unmanaged, vérifiez son [Match]nom et assurez-vous qu'aucun autre gestionnaire de réseau ne revendique le même périphérique.

Pour les configurations avancées telles que les ponts, les agrégats, les VLAN, les tunnels ou les périphériques virtuels, consultez la documentation officielle du service systemd-networkdsystemd.netdev et les références associées systemd.link.