Innanzitutto, se networksetup -getdnsservers <service name>
non mostra nulla, non hai niente elencato in Preferenze di Sistema > Netowrk sotto "DNS Servers:".
In secondo luogo, è importante notare che OS X non gestisce il DNS come la maggior parte dei sistemi. Per link In sostanza ciò significa che OS X ha più Client DNS in base alla configurazione. Il risultato di questi servizi multipli significa che ci sono situazioni in cui l'utilizzo di Safari per accedere a un sito Web ( link ) ti porterà a un indirizzo IP che OS X ha recuperato dal DNS (ad esempio 1.2.3.4) mentre allo stesso tempo eseguiva 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 esegui $ man dig
ottieni tra l'altro quanto segue:
Mac OS X NOTICE
The dig command does not use the host name and address resolution or
the DNS query routing mechanisms used by other processes running on Mac
OS X. The results of name or address queries printed by dig may differ
from those found by other processes that use the Mac OS X native name
and address resolution mechanisms. The results of DNS queries may also
differ from queries that use the Mac OS X DNS routing library.
Anche $man nslookup
restituirà qualcosa di simile
Mac OS X NOTICE
The nslookup command does not use the host name and address resolution or the DNS query
routing mechanisms used by other processes running on Mac OS X. The results of name or
address queries printed by nslookup may differ from those found by other processes that
use the Mac OS X native name and address resolution mechanisms. The results of DNS
queries may also differ from queries that use the Mac OS X DNS routing library.
Tutto questo è davvero un modo piuttosto lungo di dire, il modo migliore per vedere quali server DNS vengono utilizzati è guardare le Preferenze di Sistema > Rete
Le voci "Server DNS:" sono solitamente 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 utility e altri processi che non possono usare con la libreria di routing DNS di OS X, e colpiranno il contenuto di / etc / resolv. conf direttamente.
La risposta breve è questa:
- Se segui il contenuto di Preferenze di Sistema > Rete, stai guardando la stessa cosa che i più processi stanno usando.
- Il contenuto delle 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 e server DNS aggiuntivi che networksetup -getdnsservers <service name>
non mostrerà. Il tuo client VPN potrebbe essere in grado di mostrarti i percorsi e i server DNS, so che il mio fa.
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à" relativa al DNS su un Mac. Generalmente sei sicuro assumendo che il contenuto di Preferenze di Sistema > La rete o il contenuto di networksetup -getdnsservers <service name>
sono da dove ricevi il tuo DNS. Tuttavia, se le cose sembrano strane, tieni presente che ci sono anche altre possibilità. Usa lo scavare per aiutare a determinare se ci sono differenze a piedi.
Infine, per quei lettori che si stanno chiedendo come ottenere <service name>
in networksetup -getdnsservers <service name>
, prova a utilizzare networksetup -listallnetworkservices
Bill