Comando resolvectl in Linux: controllare DNS, interfacce e split DNS
resolvectl mostra server DNS, domini per interfaccia e risultati di risoluzione dei nomi gestiti da systemd-resolved. Per diagnosticare un problema, leggi prima status e poi prova query: il risultato descrive il percorso di resolved, che non coincide necessariamente con quello di ogni applicazione.
Il DNS (Domain Name System) associa nomi e informazioni di rete, come gli indirizzi IP. Su un computer con più collegamenti, ciascuna interfaccia può usare server e domini diversi. Una VPN, cioè una rete privata virtuale, può applicare il DNS diviso o split DNS: alcuni domini vengono risolti tramite il collegamento privato, altri tramite quello ordinario.
Sintassi e requisiti
resolvectl [command] [name or link]
Le parentesi indicano argomenti da sostituire, non da copiare letteralmente. Verifica la versione con resolvectl --version e consulta man resolvectl: le opzioni disponibili dipendono dalla versione installata. Questi esempi richiedono systemd-resolved operativo; avere systemd come gestore dei servizi non significa automaticamente usare anche resolved per il DNS.
Se il comando manca o non riesce a collegarsi al servizio, identifica prima il gestore DNS della distribuzione. Su un sistema che usa systemd puoi leggere lo stato con systemctl status systemd-resolved, senza avviare o abilitare servizi per tentativi. Per individuare i nomi delle interfacce, usa ip link show come nella guida al comando ip.
Esempi: impostazioni, risoluzione e statistiche
Leggere la configurazione. Il comando seguente mostra la situazione globale e quella dei singoli collegamenti.
resolvectl status
Cerca server DNS, domini e interfacce attive, includendo l'eventuale VPN. Annota questi dati prima di modificare qualcosa: il solo elenco dei server non descrive tutte le regole che selezionano il percorso di una richiesta.
Provare la risoluzione di un nome. Questa richiesta passa attraverso systemd-resolved.
resolvectl query example.com
In caso di successo, controlla gli indirizzi restituiti e le informazioni sul protocollo e sull'interfaccia, se presenti. La risposta può provenire dalla cache o da fonti locali: un successo non dimostra da solo che sia stata inviata una nuova richiesta al server a monte. Non verifica neppure che il sito o un altro servizio siano raggiungibili.
Per un problema limitato alla VPN, ripeti il controllo sul nome completo realmente interessato, nel contesto in cui si manifesta il problema. Un nome pubblico funzionante non dimostra che anche i domini privati seguano il percorso corretto. Confronta inoltre il comportamento dell'applicazione: cache o impostazioni di risoluzione proprie possono produrre risultati diversi.
Leggere le statistiche. Il comando mostra contatori e informazioni generali del resolver, comprese quelle sulla risoluzione e sulla validazione quando disponibili.
resolvectl statistics
Confronta le letture prima e dopo una richiesta, annotando le altre attività del sistema. I contatori aggregati non sono una traccia esclusiva della tua prova e non identificano da soli il server usato per un nome. Non azzerarli prima di raccogliere i dati necessari alla diagnosi.
DNS globale, DNS per interfaccia e split DNS
Per tornare alla configurazione corrente:
resolvectl status
Estratto puramente illustrativo: 192.0.2.53 è un indirizzo riservato alla documentazione, non un server DNS da configurare o interrogare. Il nome e l'indice dell'interfaccia possono cambiare.
Global
Current DNS Server: 192.0.2.53
Link 2 (eth0)
DNS Servers: 192.0.2.53
Global riguarda le impostazioni globali; Link 2 (eth0) quelle del collegamento indicato. Current DNS Server non va interpretato come il server obbligatorio per qualsiasi nome su tutte le interfacce.
I domini di ricerca possono completare nomi brevi. I domini preceduti da ~ sono invece domini di solo instradamento DNS: per esempio ~example.com seleziona il collegamento per quel dominio e i suoi sottodomini, senza aggiungere il suffisso ai nomi brevi. Nelle richieste DNS unicast, resolved preferisce la corrispondenza di dominio più specifica; più collegamenti con la stessa corrispondenza migliore possono essere interrogati in parallelo. Il dominio ~. riguarda i nomi senza una corrispondenza più specifica.
Se nessun dominio corrisponde, contano i collegamenti adatti come percorso DNS predefinito e gli eventuali server globali. Il percorso DNS predefinito e la rotta IP predefinita sono concetti distinti: leggi la configurazione di entrambi invece di dedurre l'uno dall'altra.
Comandi principali: lettura o modifica?
| Comando | Funzione |
|---|---|
status |
Legge impostazioni globali e per collegamento. |
query nome |
Risolve un nome o un indirizzo tramite resolved. |
statistics |
Mostra statistiche generali del resolver. |
dns [link] |
Legge i server DNS; aggiungendo indirizzi di server dopo il link modifica la configurazione. |
domain [link] |
Legge i domini; aggiungendo domini dopo il link imposta domini di ricerca o di solo instradamento. |
flush-caches |
Svuota le cache DNS locali mantenute da resolved e modifica le condizioni della diagnosi. |
resolvectl dns eth0 legge i server del collegamento, se questo esiste. Una forma come resolvectl dns interfaccia server, con i segnaposto sostituiti da valori reali, li imposta: non è un semplice test di raggiungibilità del server.
Precauzioni: cache, gestore di rete e resolv.conf
Prima di cambiare server o domini, registra la configurazione e identifica chi la gestisce: NetworkManager, systemd-networkd, il client VPN o le informazioni ricevute via DHCP possono concorrere a determinarla. Una modifica fatta con resolvectl non è una garanzia di configurazione persistente e può essere sostituita dal gestore di rete.
Per annullare una prova, ripristina i valori registrati tramite il gestore responsabile e verifica nuovamente status e query. resolvectl revert interfaccia ripristina i valori predefiniti delle impostazioni DNS per quell'interfaccia; non recupera una fotografia esatta della configurazione precedente e non è un annullamento universale.
/etc/resolv.conf non rappresenta da solo l'intera politica split DNS. Se indirizza al resolver locale 127.0.0.53, questo è uno stub locale, non necessariamente il server DNS a monte. Se invece rimanda a /run/systemd/resolve/resolv.conf, i client che leggono quel file e interrogano direttamente i server possono aggirare resolved. Verifica anche la destinazione del collegamento simbolico e il percorso usato dall'applicazione.
flush-caches svuota le cache di resolved, non quelle di ogni browser, applicazione o server remoto. Raccogli prima i sintomi e le statistiche; lo svuotamento può cambiare il risultato della prova senza correggere la causa del problema.
Domande frequenti
Che cosa fare se resolvectl manca o non funziona?
Controlla se systemd-resolved è presente e operativo e quale servizio gestisce realmente il DNS. Esamina anche come viene gestito /etc/resolv.conf. Un errore del comando non dimostra da solo che i server DNS siano guasti.
Se query funziona, perché l'applicazione continua a fallire?
L'applicazione può usare una cache o un percorso di risoluzione diverso. Inoltre risolvere il nome non verifica connessione, certificato o servizio. Confronta nome richiesto, rete e VPN attive e impostazioni dell'applicazione.
Documentazione di riferimento
Il manuale ufficiale di resolvectl descrive i comandi; il manuale di systemd-resolved spiega instradamento e integrazione con resolv.conf. L'indirizzo illustrativo appartiene al blocco per documentazione definito nella RFC 5737.




