Wenn networksetup -getdnsservers <service name>
nichts angezeigt wird, ist in den Systemeinstellungen> Netowrk unter "DNS-Server:" nichts aufgeführt.
Zweitens ist zu beachten, dass OS X DNS nicht wie die meisten Systeme verarbeitet. Per https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Dies bedeutet im Wesentlichen, dass OS X abhängig von Ihrer Konfiguration mehrere DNS-Clients hat. Das Ergebnis dieser mehreren Dienste bedeutet, dass es Situationen gibt, in denen Sie mithilfe von Safari für den Zugriff auf eine Website ( http://www.example.com ) zu einer IP-Adresse gelangen, die OS X währenddessen aus DNS abgerufen hat (z. B. 1.2.3.4) zur gleichen Zeit eine Ausgrabung durchführen
$ dig www.example.com
gibt unterschiedliche Ergebnisse zurück. (vielleicht 2.3.4.5)
Der Grund dafür liegt in der Art und Weise, wie OS X mit DNS umgeht.
Wenn Sie laufen, erhalten $ man dig
Sie unter anderem Folgendes:
Mac OS X HINWEIS Der Befehl dig verwendet nicht die Auflösung von Hostnamen und Adressen oder die DNS-Abfrage-Routing-Mechanismen, die von anderen unter Mac OS X ausgeführten Prozessen verwendet werden. Die Ergebnisse von Namens- oder Adressabfragen, die von dig gedruckt werden, können von denen anderer Prozesse abweichen die die nativen Auflösungsmechanismen für Namen und Adressen von Mac OS X verwenden. Die Ergebnisse von DNS-Abfragen können sich auch von Abfragen unterscheiden, die die Mac OS X DNS-Routingbibliothek verwenden.
Wird $man nslookup
auch etwas ähnliches zurückgeben
Mac OS X HINWEIS Der Befehl nslookup verwendet weder die Auflösung des Hostnamens und der Adresse noch die DNS-Abfrage-Routing-Mechanismen, die von anderen unter Mac OS X ausgeführten Prozessen verwendet werden. Die Ergebnisse der von nslookup gedruckten Namens- oder Adressabfragen können von denen anderer Prozesse abweichen die die nativen Auflösungsmechanismen für Namen und Adressen von Mac OS X verwenden. Die Ergebnisse von DNS-Abfragen können sich auch von Abfragen unterscheiden, die die Mac OS X DNS-Routingbibliothek verwenden.
All dies ist wirklich eine ziemlich lange Art zu sagen. Der beste Weg, um zu sehen, welche DNS-Server verwendet werden, ist Systemeinstellungen> Netzwerk
Die Einträge "DNS-Server:" sind normalerweise vorhanden, und "Suchdomänen:" ermöglicht die Suche nach unvollständigen Adressen.
Wenn "DNS-Server:" nicht vorhanden ist, versucht OS X, die Adresse in "Router:" für DNS zu verwenden.
Zusätzlich zu diesem Spaß gibt es Dienstprogramme und andere Prozesse, die möglicherweise nicht die OS X-DNS-Routingbibliothek verwenden und direkt auf den Inhalt von /etc/resolv.conf zugreifen.
Die kurze kurze Antwort lautet:
- Wenn Sie sich den Inhalt von Systemeinstellungen> Netzwerk ansehen, sehen Sie dasselbe, was die meisten Prozesse verwenden.
- Der Inhalt von Systemeinstellungen> Netzwerk sollte /etc/resolv.conf füllen, aber nicht immer.
- Einige andere Prozesse (wie dig und nslookup) greifen direkt auf /etc/resolv.conf zu.
Und obendrein: Wenn Sie die in OS X integrierten VPN-Clients nicht verwenden, networksetup -getdnsservers <service name>
werden möglicherweise zusätzliche Routen und DNS-Server verwendet, die nicht angezeigt werden. Ihr VPN-Client kann Ihnen möglicherweise die Routen und DNS-Server anzeigen. Ich weiß, dass dies bei mir der Fall ist.
Ich weiß, dass dies Ihre Frage nicht genau beantwortet, aber hoffentlich hilft Ihnen dies zu erkennen, dass es nicht immer einfach ist, herauszufinden, was die "Wahrheit" in Bezug auf DNS auf einem Mac ist. Im Allgemeinen können Sie davon ausgehen, dass der Inhalt von Systemeinstellungen> Netzwerk oder der Inhalt von der Ort networksetup -getdnsservers <service name>
ist, von dem Sie Ihr DNS beziehen. Wenn die Dinge jedoch seltsam erscheinen, denken Sie daran, dass es auch andere Möglichkeiten gibt. Verwenden Sie dig, um festzustellen, ob Unterschiede im Gange sind.
Last, für die Leser , die sich fragen , wie das bekommen <service name>
in networksetup -getdnsservers <service name>
, versuchen Sie es mitnetworksetup -listallnetworkservices
Rechnung