nslookup su Mac: comandi DNS e quando usarli

Come usare nslookup, dig e host su Mac per le ricerche DNS. Include esempi reali per verificare la propagazione, i record MX e il debug di indirizzi IP errati.

Hai bisogno di controllare un record DNS. Forse hai cambiato provider di hosting e vuoi confermare che il tuo dominio punti al nuovo server. Forse le tue email non vengono consegnate e sospetti un problema con il record MX. O un sito carica contenuti errati e stai cercando di capire se è un problema DNS o qualcos’altro del tutto.

macOS ha tre comandi Terminale integrati per le ricerche DNS: nslookup, dig e host. Interrogano tutti il DNS, ma ognuno presenta i risultati in modo diverso e si adatta a situazioni diverse.

Cosa fa effettivamente una ricerca DNS

Quando digiti un nome di dominio nel browser, il tuo Mac chiede a un resolver DNS (di solito quello del tuo ISP o uno pubblico come 1.1.1.1) di tradurre quel nome in un indirizzo IP. Il resolver trova la risposta e il tuo computer si connette a quell’IP.

Una ricerca DNS ti permette di eseguire tu stesso quella traduzione e ispezionare il risultato. Puoi vedere a quale IP si risolve un dominio, quali server di posta gestiscono le sue email e quali nameserver sono autorevoli per esso. Questo copre la maggior parte del debug quotidiano.

Tipi di record comuni da conoscere:

  • A: indirizzo IPv4 (il principale che cerchi)
  • AAAA: indirizzo IPv6
  • MX: server di posta, con priorità
  • CNAME: alias che punta a un altro dominio
  • TXT: record di testo, usati per SPF, DKIM, verifica del dominio
  • NS: nameserver autorevoli per il dominio

nslookup su Mac: il punto di partenza familiare

nslookup è il comando a cui la maggior parte delle persone ricorre per prima. Esiste su tutti i sistemi operativi, quindi se hai già fatto ricerche DNS altrove, la sintassi ti suona familiare.

Ricerca del record A di base

nslookup google.com

L’output mostra il server DNS che ha risposto e l’indirizzo IP. La riga “Non-authoritative answer” significa semplicemente che il risultato proviene da una cache, non dai nameserver del dominio stesso. È normale.

Cerca un tipo di record specifico

nslookup -type=MX google.com

Sostituisci MX con qualsiasi tipo di record: A, AAAA, CNAME, TXT, NS, SOA. Ad esempio, per controllare SPF e DKIM per la risoluzione dei problemi email:

nslookup -type=TXT google.com

Interroga un server DNS specifico

Qui nslookup diventa genuinamente utile. Invece di chiedere al tuo resolver predefinito (che potrebbe avere dati vecchi in cache), puoi interrogare direttamente un server specifico:

nslookup google.com 8.8.8.8
nslookup google.com 1.1.1.1

Interrogare più server ti permette di vedere se le modifiche DNS si sono propagate. Se 8.8.8.8 mostra il tuo nuovo IP ma 1.1.1.1 mostra ancora quello vecchio, la propagazione è ancora in corso.

Modalità interattiva di nslookup

Digita nslookup senza argomenti e ottieni un prompt. Da lì puoi eseguire più query senza riscrivere il comando:

> set type=MX
> google.com
> set type=A
> example.com
> exit

Il principale svantaggio di nslookup è che il suo output mescola messaggi informativi con i risultati effettivi. La formattazione è incoerente tra i tipi di record, il che rende più difficile la lettura a colpo d’occhio.

dig: lo strumento avanzato per il DNS su Mac

dig (Domain Information Groper) è lo strumento preferito dai sysadmin e dagli sviluppatori che fanno regolarmente risoluzione dei problemi DNS. L’output è strutturato e coerente, e le opzioni di controllo vanno molto oltre nslookup.

Ricerca di base

dig google.com

L’output è dettagliato per impostazione predefinita: la domanda che hai posto, la sezione delle risposte, i tempi e il server che ha risposto. Queste informazioni aggiuntive sono utili quando fai debug, perché puoi vedere esattamente cosa è stato restituito e quanto tempo ha impiegato.

Ottieni solo la risposta con +short

Quando vuoi una risposta rapida senza i dettagli circostanti:

dig google.com +short

Restituisce solo l’indirizzo IP. Utile per gli script o quando vuoi solo conoscere il risultato:

dig google.com MX +short

Restituisce i record MX con le priorità, uno per riga.

Interroga tipi di record specifici

dig google.com MX
dig google.com TXT
dig google.com NS
dig google.com AAAA

Interroga un server DNS specifico

dig @8.8.8.8 yourdomain.com
dig @1.1.1.1 yourdomain.com
dig @9.9.9.9 yourdomain.com

La sintassi @ specifica il resolver. Questo è il modo più pulito per controllare la propagazione DNS tra più resolver pubblici.

Traccia l’intero percorso di risoluzione

dig google.com +trace

Questo percorre l’intera catena di risoluzione DNS: server root, server TLD, poi i nameserver autorevoli per il dominio. Se il DNS è rotto da qualche parte nella catena, +trace ti mostrerà esattamente dove fallisce.

Verifica la validazione DNSSEC

dig google.com +dnssec

Aggiunge i record di firma DNSSEC all’output. Utile se stai verificando che la configurazione DNSSEC di un dominio sia corretta dopo averla abilitata.

host: l’opzione a lettura rapida

host fornisce output pulito e leggibile con una configurazione minima. È la scelta giusta quando vuoi una risposta veloce e non hai bisogno dei dettagli completi che fornisce dig.

host google.com

Restituisce record A, record AAAA e record MX in un solo colpo:

google.com has address 142.250.80.46
google.com has IPv6 address 2607:f8b0:4004:c1b::65
google.com mail is handled by 10 smtp.google.com.

Per un tipo di record specifico:

host -t MX google.com
host -t TXT google.com

host manca delle opzioni avanzate di dig, ma il suo output è immediatamente leggibile senza nessun flag.

Quale strumento usare e quando

Comando Ideale per Stile di output
nslookup Familiarità multipiattaforma, controlli rapidi Verboso, messaggi misti
dig Verifica propagazione, scripting, trace completo Strutturato, +short per output pulito
host Risposta rapida leggibile, nessun flag Conciso, testo semplice
dig +short Scripting, controlli batch, output minimo Solo risposta base
dig +trace Trovare dove la risoluzione DNS si interrompe Catena completa dai server root
NetUtil GUI Nessun Terminal, navigazione visiva dei record Punta e clicca, risultati formattati

Riferimento rapido: quale strumento DNS usare secondo le tue esigenze.

Casi d’uso reali

Verificare la propagazione DNS dopo aver cambiato hosting

Hai spostato il sito su un nuovo server e aggiornato il record A. Ora vuoi sapere se la modifica si è propagata prima di cancellare il vecchio hosting.

dig @8.8.8.8 yourdomain.com +short
dig @1.1.1.1 yourdomain.com +short
dig @9.9.9.9 yourdomain.com +short

Se tutti e tre restituiscono lo stesso IP, la propagazione è completata per la maggior parte degli utenti. Se non concordano, alcuni resolver stanno ancora servendo i vecchi dati in cache.

Per vedere quanto durerà quella cache, controlla il TTL:

dig @1.1.1.1 yourdomain.com

Nella sezione delle risposte, il numero tra il nome del record e il tipo di record è il TTL in secondi. Un TTL di 300 significa che la cache si svuota in 5 minuti. Un TTL di 86400 significa che potresti aspettare 24 ore.

Debug della consegna email con i record MX

Le email non arrivano. Prima di esaminare i log SMTP, conferma che i record MX siano corretti:

nslookup -type=MX yourdomain.com

O con dig per un output più pulito:

dig yourdomain.com MX +short

L’output mostra i nomi host del tuo server di posta e le loro priorità. Un numero più basso significa una priorità più alta. Se i nomi host non corrispondono a quelli che il tuo provider email ti ha detto di impostare, questo è il tuo problema.

Controlla anche i record TXT per SPF e DKIM mentre ci sei:

dig yourdomain.com TXT +short

Il tuo record SPF sarà simile a v=spf1 include:... ~all. Se manca o è malformato, è per questo che i messaggi vanno nello spam.

Debug di perché un sito carica sull’IP sbagliato

Il tuo dominio si risolve a un vecchio IP del server anche se hai aggiornato il record A un’ora fa.

Prima, controlla cosa vede il tuo resolver locale:

dig yourdomain.com +short

Poi controlla cosa vede un resolver esterno:

dig @8.8.8.8 yourdomain.com +short

Se differiscono, il tuo resolver locale ha messo in cache la vecchia risposta. Puoi aspettare che il TTL scada o svuotare la tua cache DNS locale:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Se entrambi i resolver mostrano lo stesso IP errato, il record A non è stato salvato correttamente. Accedi di nuovo al tuo provider DNS e verifica il record.

Verificare che un CNAME sia impostato correttamente

dig yourdomain.com CNAME +short

Restituisce il dominio di destinazione a cui punta il CNAME. Se non restituisce nulla, non hai un CNAME con quel nome (potresti avere invece un record A, il che può essere intenzionale o un errore di configurazione).

Svuotare la cache DNS su macOS

Quando devi cancellare la cache DNS del tuo Mac dopo aver cambiato i record o risolto un problema di risoluzione:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Questo comando funziona su macOS Monterey, Ventura, Sonoma e Sequoia. Il processo mDNSResponder gestisce la risoluzione DNS locale, e inviandogli HUP lo si forza a ricaricarsi.

Dopo aver svuotato la cache, esegui di nuovo il tuo comando dig o nslookup e dovresti vedere il risultato aggiornato.

Se il Terminale non fa per te

Apple ha rimosso Network Utility in macOS Monterey. Questo ha eliminato l’unica GUI integrata per le ricerche DNS.

NetUtil è un sostituto gratuito. Aprilo, digita un dominio nella scheda Ricerca DNS, seleziona un tipo di record e ottieni i risultati formattati allo stesso modo in cui lo faceva il vecchio Network Utility. Nessun comando da memorizzare, nessun flag da cercare. I risultati sono gli stessi dati che otterresti da dig o nslookup, solo presentati senza il rumore di fondo.

Per controlli DNS occasionali, una GUI rimuove la frizione. Per ricerche ripetute o qualsiasi cosa vorresti scriptare, rimani con dig.

Scegli lo strumento giusto per il compito

nslookup va bene per controlli rapidi, specialmente se ne sei già familiare. dig è meglio per tutto ciò che riguarda la verifica della propagazione, lo scripting o l’analisi del comportamento DNS. host è il percorso più veloce verso una risposta leggibile quando hai solo bisogno di sapere a quale IP si risolve un dominio.

Tutti e tre interrogano lo stesso sistema DNS. Le differenze stanno nella presentazione e nel controllo. Usa quello che ti dà le informazioni di cui hai bisogno senza rallentarti.