Alle Namen und Adressen haben sich geändert. example.com ist eine Domäne, die mir gehört.
% ping foo.example.com
PING foo.example.com (1.1.1.1)
1.1.1.1 ist eine IP-Adresse, von der ich noch nie gehört habe. Dasselbe gilt für andere Programme (ssh, curl).
% host foo.example.com
foo.example.com has address 2.2.2.2
2.2.2.2 ist die richtige IP-Adresse.
% grep foo /etc/hosts
(empty)
Dies ist auf dem Mac. Unter Linux würde ich nach /etc/nsswitch.conf suchen, um weitere Host-Infoquellen zu finden. Gibt es etwas Ähnliches auf dem Mac?
Antwort1
macOS verfügt über ein ausgeklügeltes System zur bereichsbezogenen DNS-Weiterleitung für Dinge wie VPN. Wenn Sie beispielsweise gerade eine VPN-Verbindung zum „Arbeiten“ haben, werden Abfragen für die Domänennamen Ihrer Arbeit möglicherweise an einen DNS-Server bei der Arbeit gesendet.
Um die vollständige Liste anzuzeigen, führen Sie Folgendes aus:
scutil --dns
Um DNS wie das System abzufragen, verwenden Sie:
dns-sd -G v4v6 example.com
dns-sd -q example.com 255 255
(Sie müssen Strg-C drücken, um auszusteigen dns-sd
).
Die Befehle host
, dig
, und nslookup
sind alte Unix-Befehle zur Fehlerbehebung bei DNS-Servern, die ihren eigenen DNS-Resolver-Code enthalten und die Bibliotheken des Systems nicht verwenden. Wenn Sie also nicht angeben, welchen Server sie verwenden sollen, erhalten sie einfach die aus dem automatisch generierten /etc/resolv.conf
, das nur mit den Standardservern für nicht bereichsgebundene Abfragen gefüllt wird. Aber ein Tool wie ping
ruft wahrscheinlich einfach auf gethostbyname(3)
, das das bereichsgebundene DNS-Routing des Systems verwendet.
Bearbeitet, um hinzuzufügen: Ich sollte auch erwähnen, dass macOS Informationen zur Auflösung von Hostnamen in IP-Adressen auf verschiedene andere Weise erhalten kann, darunter:
- mDNS (Apple Bonjour / IETF ZeroConf)
- Open Directory (ein Apple-Schema für LDAP)
- Anderes LDAP
- Active Directory
- GEWINNT
- NetBIOS-Namensdienst
- NIS (früher YellowPages/yp; der Netzwerkinformationsdienst von Sun/Oracle)
dscl
Sie können diese Einstellungen mit dem Befehlszeilentool oder mit der App „Verzeichnisdienste“ bearbeiten , die sich hier verbirgt:
/System/Library/CoreServices/[Applications]/Directory\ Utility.app