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
in OSX Mavericks (10.9 - tatsächlich 10.6.3, glaube ich), wenn Sie die aktive DNS-Konfiguration sehen möchten:
Der erste Eintrag (Resolver Nr. 1) ist angeblich die aktive Konfiguration ... obwohl ich viele Fälle gesehen habe, in denen dies nicht der Fall ist.
vom Mann scutil
IME, wenn das, was Sie hier sehen, nicht Ihren Erwartungen entspricht (dh Netzwerk> Erweitert> DNS), müssen Sie möglicherweise den entsprechenden Netzwerkadapter deaktivieren / aktivieren, damit er aktualisiert wird ...
Weitere Tipps in OSX:
Mit 10.7 oder 10.8 gelten Suchdomänen nicht für Suchvorgänge mit einem Punkt darin. dh - www.test fügt Suchdomänen überhaupt nicht an, wo www. Es gibt eine Lösung:
Entladen und laden Sie nun den mDNSResponder-Dienst neu: sudo launchctl entladen -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Das Netzwerk> Erweitert> DNS-Konfiguration lautet -PER INTERFACE-. Wenn Sie also drahtlos und kabelgebunden verwenden, müssen Sie beide einrichten.
Es gibt auch einen anderen Weg - / etc / resolver - ein Beispiel hier: Funktionieren / etc / resolver / files in Mountain Lion für die DNS-Auflösung? und mehr hier: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/
Was den Versuch betrifft, ein nslookup durchzuführen, ist bekannt, dass nslookup (und Host und Dig) nicht dem (äußerst einzigartigen und durcheinandergebrachten) OSX-Auflösungsmechanismus folgt. Verwenden Sie Ping.
quelle
scutil --dns
Zeigt die tatsächliche DNS-Konfiguration an, die das Betriebssystem verwendet.Normalerweise würde ich (in Unix-Umgebungen, und dies ist möglicherweise ein bisschen altmodisch) so etwas wie die folgenden Beispiele verwenden.
Erstens können Sie eine IP-Adresse oder einen DNS-Namenseintrag einzeln suchen und es wird der Server zurückgemeldet, der zur Bereitstellung der Antwort verwendet wurde. Sie können einen einzelnen Eintrag in der Befehlszeile suchen oder das
nslookup
Programm aufrufen und mehrere Einträge suchen, ohne den Befehl erneut eingeben zu müssen:Zweitens dieser Befehl (Hinweis, ich habe dies auf einer Windows-Box ausgeführt, unter Unix / OS X ist der Befehl ipconfig / all stattdessen ifconfig -a und die Ausgabeergebnisse können geringfügig abweichen), der die IP-Konfigurationsdaten für jede Schnittstelle auf Ihrem System, die physischen Ports, auflistet. Bei drahtlosen Verbindungen, VNCs usw., die anzeigen, welche DNS- und IP-Daten mit jeder Route aus dem Computer verknüpft sind, erhalten Sie viele Einträge zurück, einen für jeden echten Netzwerkport / Adapter und je nach Ihrem auch verschiedene Mengen an virtuellen Ports In meinem Beispiel habe ich die meisten Ergebnisse entfernt, aber meinen VPN-Adapter und die (redigierten) DNS-Einträge angezeigt.
quelle
Was
nslookup
sagt dir das? Es gibt mir meinen DNS-Server in der zweiten Zeile.quelle