Wann wird die Datei /etc/hosts geladen?

Ich versuche, einige virtuelle Hosts zu konfigurieren, und bin ziemlich verwirrt darüber, wann diese Datei geladen wird.

An welcher Stelle wird /private/etc/hostsgeladen? Beim Einloggen? Bei jedem DNS-Aufruf? Wenn Mac OS neu gestartet wird?

Antworten (2)

Die Handbuchseite hosts(5) bietet einen Einblick in /etc/hostsdie Verwendung.

Die Datei wird von verwendet mDNSResponder, und angesichts Ihrer Frage vermute ich, dass Sie Änderungen sehen möchten, die sich /etc/hostsin Ihren DNS-Lookups widerspiegeln.

Nach jeder Bearbeitung des /etc/hostsZurücksetzens des mDNSResponderCaches mit diesem technischen Hinweis von Apple, OS X: So setzen Sie den DNS-Cache zurück :

sudo dscacheutil -flushcache

Der Hinweis erklärt, wann Sie dies möglicherweise tun müssen:

Wann Sie dies tun möchten

OS X behält einen lokalen Cache mit aufgelösten DNS-Abfragen für eine vom DNS-Server definierte Zeit, aber manchmal kann es notwendig sein, den Cache sofort zurückzusetzen und einen DNS-Server erneut abzufragen. Sie können dies beispielsweise tun, nachdem ein Eintrag auf dem Server geändert oder ein neuer Eintrag hinzugefügt wurde.

Normalerweise /etc/hostswerden Änderungen an automatisch innerhalb weniger Sekunden aktualisiert, und ich musste den DNS-Cache nicht manuell zurücksetzen.

Wenn Sie versuchen, auszuführen sudo opensnoop|grep /etc/hostsund zu bearbeiten /etc/hosts, wird es fast sofort nach dem Speichern /etc/hostsgelesen .mDNSResponder

Ich vermute, dass Apple in späteren Versionen von OS X damit begonnen hat, die hostsDatei mithilfe des Kqueue-Mechanismus aktiv auf Änderungen zu überwachen.