Innanzitutto, se networksetup -getdnsservers <service name>
non mostra nulla, non hai nulla elencato in Preferenze di Sistema> Netowrk in "Server DNS:".
In secondo luogo, è importante notare che OS X non gestisce il DNS come la maggior parte dei sistemi. Per https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html In sostanza, ciò significa che OS X ha più client DNS a seconda della configurazione. Il risultato di questi molteplici servizi significa che ci sono situazioni in cui l'utilizzo di Safari per accedere a un sito Web ( http://www.example.com ) ti porterà a un indirizzo IP che OS X ha recuperato dal DNS (ad esempio 1.2.3.4) mentre allo stesso tempo, eseguendo uno scavo
$ dig www.example.com
restituirà risultati diversi. (forse 2.3.4.5)
La ragione di ciò risiede nel modo in cui OS X gestisce il DNS.
Se corri $ man dig
, tra le altre cose ottieni:
AVVISO Mac OS X Il comando dig non utilizza il nome host e la risoluzione dell'indirizzo né i meccanismi di routing delle query DNS utilizzati da altri processi in esecuzione su Mac OS X. I risultati delle query relative al nome o all'indirizzo stampati da dig possono differire da quelli rilevati da altri processi che utilizzano i meccanismi nativi di risoluzione dei nomi e degli indirizzi di Mac OS X. I risultati delle query DNS possono anche differire dalle query che utilizzano la libreria di routing DNS di Mac OS X.
Inoltre $man nslookup
restituirà qualcosa di simile
AVVISO Mac OS X Il comando nslookup non utilizza il nome host e la risoluzione dell'indirizzo né i meccanismi di routing delle query DNS utilizzati da altri processi in esecuzione su Mac OS X. I risultati delle query relative a nome o indirizzo stampati da nslookup possono differire da quelli rilevati da altri processi che utilizzano i meccanismi nativi di risoluzione dei nomi e degli indirizzi di Mac OS X. I risultati delle query DNS possono anche differire dalle query che utilizzano la libreria di routing DNS di Mac OS X.
Tutto questo è davvero un modo piuttosto lungo di dire, il modo migliore per vedere quali server DNS vengono utilizzati è guardare Preferenze di Sistema> Rete
Il "Server DNS:" è di solito lì, e "Cerca domini:" ti permetterà di cercare indirizzi incompleti.
Se "Server DNS:" non è presente, OS X proverà a utilizzare l'indirizzo in "Router:" per DNS.
E, oltre a tutto questo divertimento, ci sono utilità e altri processi che potrebbero non utilizzare la libreria di routing DNS di OS X e che colpiranno direttamente il contenuto di /etc/resolv.conf.
La breve risposta breve è questa:
- Se passi dal contenuto di Preferenze di Sistema> Rete, stai osservando la stessa cosa che utilizza la maggior parte dei processi.
- Il contenuto di Preferenze di Sistema> Rete dovrebbe popolare /etc/resolv.conf, ma non sempre.
- Alcuni altri processi (come dig e nslookup) accedono direttamente a /etc/resolv.conf.
Inoltre, se non si utilizzano i client VPN integrati in OS X, è possibile che vengano utilizzati percorsi aggiuntivi e server DNS che networksetup -getdnsservers <service name>
non verranno visualizzati. Il tuo client VPN potrebbe avere la possibilità di mostrarti i percorsi e i server DNS, lo so il mio.
So che questo non risponde esattamente alla tua domanda, ma spero che questo ti aiuti a capire che non è sempre facile scoprire quale sia la "verità" sul DNS su un Mac. Generalmente sei sicuro che i contenuti di Preferenze di Sistema> Rete, o i contenuti di networksetup -getdnsservers <service name>
siano da dove stai ricevendo il tuo DNS. Tuttavia, se le cose sembrano strane, tieni presente che ci sono anche altre possibilità. Usa scavare per aiutare a determinare se ci sono differenze in corso.
Ultimo, per quei lettori che si chiedono come ottenere la <service name>
a networksetup -getdnsservers <service name>
, provare a utilizzarenetworksetup -listallnetworkservices
Conto