Wie kann ich OSX Mavericks dazu bringen, eine DNS-Änderung in `/ etc / hosts` zu bemerken?

24

Eine übliche Möglichkeit, eine Website zu "blockieren" (z. B. um sie als Ablenkung zu beseitigen), besteht darin, /etc/hostsdie Domain zu bearbeiten und auf die Loopback-Adresse zu verweisen. Z.B:

# Stop goofing off
127.0.0.1 youtube.com

Auf Mavericks stelle ich fest, dass solche Änderungen vom Betriebssystem anscheinend ignoriert werden. Nach dem Bearbeiten der Datei (mit sudo) und dem Speichern wird die zu blockierende Site weiterhin geladen.

Ich habe versucht, meinen DNS-Cache wie folgt zurückzusetzen:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Aber die Seite wird immer noch geladen.

Wie kann ich OSX Mavericks dazu bringen, eine Änderung von zu bemerken /etc/hosts?

Nathan Long
quelle
1
Könnte es sein, dass der DNS-Cache des Browsers nicht geleert wird? Welche IP ping youtube.comverwendet?
Leonid Shevtsov
Randnotiz: Wenn Sie DNS verwenden, um Websites vorübergehend zu blockieren, funktioniert selfcontrolapp.com für OSX einwandfrei. Es ändert die Hosts-Datei und scheint den Browser-Cache automatisch zu leeren. Sie erwähnen auch ähnliche Apps für andere Plattformen: github.com/SelfControlApp/selfcontrol/wiki/FAQ
Nathan Long

Antworten:

19

Entsprechend der Handbuchseite von hosts (5) wird die /etc/hostsDatei von verwendet mDNSResponder. Bei Ihren Versuchen wird der computerweite Cache korrekt geleert, Sie müssen jedoch auch den privaten Cache des Browsers leeren.

OS X: So setzen Sie den DNS-Cache nach jeder Änderung zum /etc/hostsZurücksetzen des mDNSResponderCaches mithilfe dieses technischen Hinweises von Apple zurück :

sudo dscacheutil -flushcache

Nachdem Sie das getan, Ihren Browser - Caches zurückgesetzt :

  • Safari: Verwenden Sie den Menüpunkt Safari > Safari zurücksetzen .
  • Chrome: Verwenden Sie den Menüpunkt Chrome > Browserdaten löschen .
Graham Miln
quelle
1
Das hat es behoben. Unter Chrome "Browserdaten löschen" befinden sich Kontrollkästchen für Datentypen. "Cache leeren" ist der relevante.
Nathan Long
5

Löschen Sie den Cache Ihres Browsers und fügen Sie ihn 127.0.0.1 www.youtube.comIhrer Host-Datei hinzu.

youtube.combeschließt zu www.youtube.com. Ihr Browser speichert diese Informationen zwischen und leitet Sie auf die WWW-Seite weiter.

napcae
quelle
0

In OS X 10.9 Mavericks gibt es Probleme beim Versuch, mehrere Hostnamen in derselben Zeile von / etc / hosts aufzulisten. Ich habe alle anderen DNS-bezogenen Tipps in diesem Beitrag und dem dazugehörigen Beitrag ohne Erfolg ausprobiert , bis ich auf den obigen Link "Probleme" gestoßen bin.

Früher hatte ich so etwas:

127.0.0.1 localhost host1 host2 host3 ...

aber ich fand, dass die Auflösung dieser Hosts entweder für immer dauern würde oder überhaupt nicht funktionieren würde. Der Versuch, über einen Browser auf die Websites zuzugreifen, ist in der Regel in Ordnung (wenn auch manchmal sehr langsam), der Versuch, über die Befehlszeile einen Ping-Befehl zu senden, funktioniert jedoch nicht.

Wenn ich es in das folgende Format ändere, hat alles für mich funktioniert, und mit Ping funktioniert es jetzt hervorragend, im Browser und überall sonst:

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

Weitere Details .

Scott Dudley
quelle
0

Versuchen Sie zusätzlich zu Grahams Antwort chrome: // net-internals / # dns (für Google Chrome), um zu sehen, was zwischengespeichert wird. Klicken Sie dann auf Host-Cache löschen, um alles zu löschen.

David Hempy
quelle