Warum kann ich Facebook mit / etc / hosts unter Mountain Lion (OS X) nicht blockieren?

34

Es hat eine Weile in der alten Konfiguration funktioniert, hat dann aber aus irgendeinem Grund aufgehört zu arbeiten.

Hier ist meine / etc / hosts-Datei von meinem Mountain Lion MacBook Air:

127.0.0.1 reddit.com www.reddit.com
127.0.0.1 facebook.com www.facebook.com
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

Dies blockiert Reddit, aber nicht Facebook.

Ich habe versucht, den DNS-Cache für den Computer ("sudo killall -HUP mDNSResponder"), die Bowsers (FF und Chrome) zu leeren, und ich habe versucht, den Computer neu zu starten.

Und ich habe die Einträge auf Anraten dieses Artikels an den Anfang der Datei verschoben , aber es hat vorher nicht funktioniert, als es am Ende war. Jedes Mal würde es Reddit aber nicht Facebook blockieren.

seanieb
quelle
2
Das ist merkwürdig. Es hat auch bei mir nicht funktioniert - ich frage mich, ob es mit der Facebook-Integration von ML zu tun hat. Ich überlege, wie ich diese Theorie testen soll.
Jerry Seeger
1
Das Durchsuchen des Systemordners nach allen Erwähnungen von facebook.com ergab (unter anderem) /System/Library/Caches/com.apple.internetaccounts.domainscache.plist, was für mich der wahrscheinlichste Schuldige war. Ich habe nicht versucht, mich damit zu beschäftigen, aber es könnte das sein, wonach Sie suchen. Ich wäre allerdings sehr vorsichtig.
Jerry Seeger
1
Ich würde @ JerrySeeger zustimmen, dass es wahrscheinlich eine Funktion der Facebook-Integration ist. Das heißt, warum blockieren Sie Websites mit einer solchen launischen Methode? Wenn Sie den Internetzugang kontrollieren möchten, besorgen Sie sich einen Proxy.
ta.speot.is
Ich möchte es nur blockieren, da es meine Produktivität während des Tages beeinträchtigt. Es ist keine so große Sache, aber was noch wichtiger ist, ich bin sehr gespannt auf die technischen Gründe, warum ich es nicht blockieren kann.
Seanieb
1
Was passiert am dig facebook.comoder nslookup facebook.com?
JohannesM

Antworten:

43

harrymc ist nah dran, aber aus irgendeinem Grund beachtet OS X (ab 10.8.2) nicht die IPv6-Loopback-Adresse von :: 1 (wahrscheinlich ein Fehler), sodass Sie fe80 :: 1% lo0 verwenden müssen. Der Grund, warum Sie IPv6 blockieren müssen, besteht darin, dass Facebook Ihnen die Website über V6 zur Verfügung stellt, sofern Ihr ISP dies unterstützt. Sie können dies einfach überprüfen, indem Sie ein Browser-Plugin installieren, das ein Symbol anzeigt, wenn eine Site über IPv6 bereitgestellt wird. Der Grund, warum dies für Sie zuvor kein Problem war, ist, dass Facebook wahrscheinlich erst vor kurzem damit begonnen hat, seine Website über IPv6 bereitzustellen.

Die richtige Antwort lautet also:

# Block Facebook IPv4
127.0.0.1   www.facebook.com
127.0.0.1   facebook.com
127.0.0.1   login.facebook.com
127.0.0.1   www.login.facebook.com
127.0.0.1   fbcdn.net
127.0.0.1   www.fbcdn.net
127.0.0.1   fbcdn.com
127.0.0.1   www.fbcdn.com
127.0.0.1   static.ak.fbcdn.net
127.0.0.1   static.ak.connect.facebook.com
127.0.0.1   connect.facebook.net
127.0.0.1   www.connect.facebook.net
127.0.0.1   apps.facebook.com

# Block Facebook IPv6
fe80::1%lo0 facebook.com
fe80::1%lo0 login.facebook.com
fe80::1%lo0 www.login.facebook.com
fe80::1%lo0 fbcdn.net
fe80::1%lo0 www.fbcdn.net
fe80::1%lo0 fbcdn.com
fe80::1%lo0 www.fbcdn.com
fe80::1%lo0 static.ak.fbcdn.net
fe80::1%lo0 static.ak.connect.facebook.com
fe80::1%lo0 connect.facebook.net
fe80::1%lo0 www.connect.facebook.net
fe80::1%lo0 apps.facebook.com
Jesse Endahl
quelle
3
Hallo Jesse, ich habe alles in meine / etc / hosts kopiert und kann trotzdem zu Facebook gelangen. Vermisse ich noch etwas?
Gruszczy
funktioniert bei mir nicht eider Ich habe versucht, es auch in meinem Router zu blockieren, andere Websites sind in Ordnung, aber nicht Facebook blockiert
adrianTNT
3
es hat funktioniert, nachdem ich Safari beendet habe
Mujah Maskey
5

Versuchen Sie, die folgende Zeile einzufügen /etc/resolv.conf

lookup file, bind

Dies sollte OS X zwingen, / etc / hosts vor dns zu verwenden. Das einzige Problem ist, wenn Sie DHCP verwenden, wird diese Datei bei jedem Neustart überschrieben.

John Siu
quelle
4

Ich bin auch davon getrampelt worden. Ich mache gerne nur die notwendigen Schritte und hacke nur die notwendigen Konfigurationsdateien und nichts mehr. Hier ist eine Zusammenfassung dessen , was funktioniert und was nicht, was notwendig ist oder nicht, wie von heute :

  • @ Jesse-Endahls Hack funktioniert genau. Müssen fe80::1%lo0für den IPv6-Loopback die Einträge verwendet werden, ::1scheinen diese ignoriert zu werden.

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -- nicht benötigt

  • Hinzufügen lookup file, bindin /etc/resolv.conf- nicht erforderlich

Beachten Sie beim Testen, dass einige Anwendungen über einen eigenen DNS-Cache verfügen. Zum Beispiel der Chrome-Browser: Es macht keinen Sinn, die IP-Adressen bei jedem Seiten-Reload nachzuschlagen. Wenn die IP von facebook.comvor 173.252.110.27einer Minute war, sollte sie jetzt immer noch dieselbe sein, oder? Dies erschwert das Testen, da es einige Minuten dauert, bis der Cache von Chrome abgelaufen ist. Es sei denn, Sie kennen eine Methode, um es zu löschen.

Eine Testmethode, die für mich gut funktioniert hat, ist die Verwendung der Funktion " Neues Inkognito-Fenster" von Chrome. /etc/hostsÖffnen Sie jedes Mal, wenn Sie etwas ändern , ein neues Inkognito-Fenster, um das Ergebnis anzuzeigen, und es sollte sofort funktionieren. Die nicht-inkognito-Fenster funktionieren auch, schließlich dauert es nur ein paar Minuten.

Hör auf, Monica weiter zu schaden
quelle
3

Versuchen Sie dies :

# Block Facebook IPv4
127.0.0.1   www.facebook.com
127.0.0.1   facebook.com
127.0.0.1   login.facebook.com
127.0.0.1   www.login.facebook.com
127.0.0.1   fbcdn.net
127.0.0.1   www.fbcdn.net
127.0.0.1   fbcdn.com
127.0.0.1   www.fbcdn.com
127.0.0.1   static.ak.fbcdn.net
127.0.0.1   static.ak.connect.facebook.com
127.0.0.1   connect.facebook.net
127.0.0.1   www.connect.facebook.net
127.0.0.1   apps.facebook.com
# Block Facebook IPv6
::1 www.facebook.com
::1 facebook.com
::1 login.facebook.com
::1 www.login.facebook.com
::1 fbcdn.net
::1 www.fbcdn.net
::1 fbcdn.com
::1 www.fbcdn.com
::1 static.ak.fbcdn.net
::1 static.ak.connect.facebook.com
::1 connect.facebook.net
::1 www.connect.facebook.net
::1 apps.facebook.com

Wenn dies nicht funktioniert, lesen Sie den Artikel Block Facebook, der auch Folgendes vorschlägt:

  • Facebook auf dem Router blockieren
  • Sperren Sie Facebook mit einer benutzerdefinierten OpenDNS-Sperrliste

Wenn dies immer noch nicht funktioniert, können Sie die Anwendung SelfControl ausprobieren .

Harrymc
quelle
Das Ziel dieser Frage ist nicht, mich einfach Facebook blockieren zu lassen. Ich möchte verstehen, warum die Datei / etc / hosts nicht funktioniert.
Seanieb
@seanieb Er hat diese Antwort mit einer anderen Antwort verknüpft. Die Erklärung finden Sie dort.
3

Mac OS X El Capitan: Version 10.11.5

Safari: 9.1.1

Ich musste eine Kombination aller oben genannten Antworten verwenden, um Facebook endgültig blockieren zu können. Hier ist der Inhalt meiner /etc/hosts Datei:

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
# Block Facebook
127.0.0.1   www.facebook.com
127.0.0.1   facebook.com
127.0.0.1   login.facebook.com
127.0.0.1   www.login.facebook.com
127.0.0.1   fbcdn.net
127.0.0.1   www.fbcdn.net
127.0.0.1   fbcdn.com
127.0.0.1   www.fbcdn.com
127.0.0.1   static.ak.fbcdn.net
127.0.0.1   static.ak.connect.facebook.com
127.0.0.1   connect.facebook.net
127.0.0.1   www.connect.facebook.net
127.0.0.1   apps.facebook.com
fe80::1%lo0 facebook.com
fe80::1%lo0 login.facebook.com
fe80::1%lo0 www.login.facebook.com
fe80::1%lo0 fbcdn.net
fe80::1%lo0 www.fbcdn.net
fe80::1%lo0 fbcdn.com
fe80::1%lo0 www.fbcdn.com
fe80::1%lo0 static.ak.fbcdn.net
fe80::1%lo0 static.ak.connect.facebook.com
fe80::1%lo0 connect.facebook.net
fe80::1%lo0 www.connect.facebook.net
fe80::1%lo0 apps.facebook.com
::1 www.facebook.com
::1 facebook.com
::1 login.facebook.com
::1 www.login.facebook.com
::1 fbcdn.net
::1 www.fbcdn.net
::1 fbcdn.com
::1 www.fbcdn.com
::1 static.ak.fbcdn.net
::1 static.ak.connect.facebook.com
::1 connect.facebook.net
::1 www.connect.facebook.net
::1 apps.facebook.com

Und komisch .. das hat funktioniert!

Schritte:

  1. Führen Sie auf Ihrem Terminal sudo vi /etc/hosts oder aus sudo pico /etc/hosts

  2. Speichern Sie den obigen Inhalt. (aus dem Kommentar # Block Facebook)

  3. Führen Sie auf dem Terminal aus dscacheutil -flushcache.

  4. Leeren Sie auf Safari den Cache. Menüleiste auswählen Develop -> Empty Cache

  5. Möglicherweise müssen Sie Ihren Computer neu starten. Und Problem gelöst!

Meghna Natraj
quelle
Ja endlich: D. Mit Mojave in Deutschland arbeiten.
fl034
1

Versuchen Sie, diese hinzuzufügen

127.0.0.1 www.facebook.com

127.0.0.1 facebook.com 127.0.0.1 static.ak.fbcdn.net

127.0.0.1 www.static.ak.fbcdn.net

127.0.0.1 login.facebook.com

127.0.0.1 www.login.facebook.com

127.0.0.1 fbcdn.net

127.0.0.1 www.fbcdn.net

127.0.0.1 fbcdn.com

127.0.0.1 www.fbcdn.com

127.0.0.1 static.ak.connect.facebook.com

127.0.0.1 www.static.ak.connect.facebook.com

Dann sollte es blockiert werden.

Karan Raj Baruah
quelle