systemd-networkd è il gestore di rete integrato di systemd per la configurazione di collegamenti Ethernet, indirizzi, route, bridge, VLAN e altri dispositivi di rete. Per una connessione cablata di base, la configurazione è semplice: identificare l'interfaccia, creare un .networkfile, assicurarsi che nessun altro gestore possieda la stessa interfaccia, avviare il sistema systemd-networkde verificare il risultato.
Questa guida utilizza il DHCP su un'interfaccia Ethernet cablata. Se si è connessi alla macchina tramite SSH, utilizzare una console locale o la gestione out-of-band prima di cambiare gestore di rete, poiché il passaggio di controllo potrebbe interrompere temporaneamente la connessione.
1. Controlla l'interfaccia Ethernet e il gestore di rete corrente
Iniziate elencando i link di cui systemd è a conoscenza:
networkctl list
Cerca l'interfaccia cablata, solitamente denominata in modo simile a enp3s0, eno1, o eth0. Puoi anche eseguire ip link. Non copiare ciecamente il nome dell'interfaccia di esempio.

Successivamente, verifica se NetworkManager è attivo:
systemctl status NetworkManager
NetworkManager e systemd-networkd possono coesistere quando gestiscono interfacce diverse , ma è sconsigliabile che entrambi gestiscano lo stesso collegamento Ethernet. La documentazione attuale di systemd.network spiega come .networki file vengono associati alle interfacce e come networkd determina la proprietà.

2. Creare un profilo di rete DHCP
I profili degli amministratori locali si trovano in /etc/systemd/network/. Crea la directory se non esiste già, quindi modifica un file come 20-wired.network:
sudo mkdir -p /etc/systemd/network
sudo nano /etc/systemd/network/20-wired.network
Per una normale connessione Ethernet che riceve il suo indirizzo dal router o dal server DHCP, utilizzare:
[Match]
Name=enp3s0
[Network]
DHCP=yes
Sostituisci enp3s0con la tua interfaccia effettiva. I file devono terminare con .network. Quando più file corrispondono a un collegamento, systemd-networkd utilizza il primo file corrispondente in ordine alfanumerico, quindi un nome specifico come 20-wired.networkè più facile da interpretare rispetto a un nome generico.

Opzionale: utilizzare un indirizzo IPv4 statico
Se la macchina necessita di un indirizzo fisso, sostituirlo DHCP=yescon i valori appropriati per la propria rete:
[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
Non riutilizzare questi indirizzi di esempio a meno che non corrispondano alla tua sottorete. Consulta i documenti di riferimento ufficiali di systemd.networkDHCP= , Address=, Gateway=, DNS=, e opzioni di routing più avanzate.
3. Abilita systemd-networkd
Una volta pronto il profilo, abilita networkd e avvialo immediatamente:
sudo systemctl enable --now systemd-networkd
Se un altro servizio gestisce attualmente la stessa interfaccia Ethernet, eseguire il passaggio da una console locale. Per un host che desidera abbandonare completamente NetworkManager, è possibile arrestarlo e disabilitarlo con:
sudo systemctl disable --now NetworkManager
Non disabilitare NetworkManager se ne hai ancora bisogno per il Wi-Fi o altre interfacce. systemd-networkdConfigura la rete IP, ma l'autenticazione Wi-Fi normalmente richiede un componente separato come iwd o wpa_supplicant.

4. Configurare il DNS con systemd-resolved, se necessario.
systemd-resolvedNon è un requisito per networkd in sé, ma si integra bene con networkd e può utilizzare i server DNS appresi tramite DHCP. Se la tua distribuzione non utilizza già un altro resolver, abilitalo:
sudo systemctl enable --now systemd-resolved
La documentazione di systemd-resolved raccomanda di collegarsi /etc/resolv.confal suo file stub quando resolved è il resolver di sistema. Verificare prima:
readlink -f /etc/resolv.conf
Se desideri intenzionalmente che systemd-resolved fornisca resolv.conf, usa:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Non sostituire /etc/resolv.confse la tua distribuzione o un altro strumento DNS lo gestisce già intenzionalmente.

5. Ricaricare la configurazione e riconfigurare l'interfaccia
Dopo aver modificato un .networkfile, ricarica la configurazione di networkd. A questo punto puoi riconfigurare esplicitamente il collegamento di destinazione:
sudo networkctl reload
sudo networkctl reconfigure enp3s0
Sostituisci enp3s0con il nome della tua interfaccia. Il manuale ufficiale di networkctl documenta entrambi i comandi. systemctl restart systemd-networkdAnche un'operazione completa ricarica il servizio, ma networkctldi solito è la scelta più mirata.

6. Verificare che systemd-networkd funzioni
Verifica lo stato dell'interfaccia:
networkctl status enp3s0
Per una connessione DHCP funzionante, il collegamento dovrebbe essere configurato con un indirizzo IP, un gateway predefinito e, di solito, informazioni DNS.

Quindi conferma il routing e la connettività:
ip route
ping -c 3 1.1.1.1
Se il ping IP funziona ma i siti web o i nomi host non vengono risolti, testa il DNS con resolvectl query example.comsystemd-resolved. Se l'interfaccia rimane invariata unmanaged, ricontrolla il [Match]nome e assicurati che un altro gestore di rete non stia utilizzando lo stesso dispositivo.

Per configurazioni avanzate come bridge, bond, VLAN, tunnel o dispositivi virtuali, consultare la documentazione ufficiale del servizio systemd-networkd e i relativi systemd.netdevriferimenti systemd.link.