Pourquoi ne puis-je pas bloquer Facebook en utilisant / etc / hosts sur Mountain Lion (OS X)?

34

Cela a fonctionné pendant un certain temps dans l'ancienne configuration, mais a ensuite cessé de fonctionner pour une raison quelconque.

Voici mon fichier / etc / hosts de mon MacBook Air Mountain Lion:

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

Cela bloque Reddit, mais pas Facebook.

J'ai essayé de vider le cache DNS de la machine ("sudo killall -HUP mDNSResponder"), des bowsers (FF et Chrome) et j'ai essayé de redémarrer l'ordinateur.

Et j'ai déplacé les entrées en haut du fichier sur les conseils de cet article , mais cela ne fonctionnait pas avant quand c'était au bas. À chaque fois, cela bloquerait Reddit mais pas Facebook.

Seanieb
la source
2
C'est étrange. Cela n'a pas non plus fonctionné pour moi - je me demande si cela a à voir avec l'intégration de ML sur Facebook. Je réfléchis à la façon de tester cette théorie.
Jerry Seeger
1
Rechercher dans le dossier système toutes les mentions de facebook.com trouvées (entre autres) /System/Library/Caches/com.apple.internetaccounts.domainscache.plist qui me paraissait être le coupable le plus probable. Je n'ai pas essayé de jouer avec, mais c'est peut-être ce que vous recherchez. Je serais très prudent, cependant.
Jerry Seeger
1
Je suis d’accord avec @JerrySeeger pour dire que c’est probablement une fonction de l’intégration de Facebook. Cela dit, pourquoi bloquez-vous les sites avec une méthode aussi instable? Si vous souhaitez contrôler l'accès à Internet, procurez-vous un proxy.
ta.speot.is
Je veux seulement le bloquer car cela ruine ma productivité pendant la journée. Ce n'est pas si grave, mais plus important encore, je suis très curieux des raisons techniques pour lesquelles je ne peux pas le bloquer.
Seanieb
1
Que se passe sur dig facebook.comou nslookup facebook.com?
JohannesM

Réponses:

43

harrymc est proche mais pour une raison quelconque, OS X (à partir de la version 10.8.2) ne respecte pas l'adresse de bouclage IPv6 de :: 1 (probablement un bogue), vous devez donc utiliser fe80 :: 1% lo0. La raison pour laquelle vous devez bloquer IPv6 est que Facebook va vous servir de leur site sur V6 si votre FAI le prend en charge. Vous pouvez facilement le vérifier en installant un plug-in de navigateur qui affiche une icône lorsqu'un site est desservi via IPv6. La raison pour laquelle ce n'était pas un problème pour vous auparavant est que Facebook a récemment commencé à servir son site via IPv6.

Donc, la réponse correcte est:

# 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
la source
3
Bonjour Jesse, je copie tout collé dans mon / etc / hosts et je peux toujours accéder à facebook. Est-ce que je manque encore quelque chose?
Gruszczy
ne fonctionne pas pour moi eider. J'ai aussi essayé de le bloquer dans mon routeur, les autres sites sont bien bloqués, mais pas Facebook
adrianTNT
3
cela a fonctionné après que j'ai arrêté le redémarrage du safari
Mujah Maskey le
5

Essayez d'ajouter la ligne suivante dans /etc/resolv.conf

lookup file, bind

Cela devrait obliger OS X à utiliser / etc / hosts avant les DNS. Le seul problème est que si vous utilisez dhcp, ce fichier sera écrasé à chaque redémarrage.

John Siu
la source
4

J'ai été piétiné par ça aussi. J'aime ne faire que les étapes nécessaires et ne pirater que les fichiers de configuration nécessaires et rien de plus. Voici un résumé de ce qui fonctionne et de ce qui ne fonctionne pas, de ce qui est nécessaire ou non, à ce jour :

  • Le hack de @ jesse-endahl fonctionne exactement. Besoin d'utiliser fe80::1%lo0pour le bouclage IPv6, les entrées pour ::1semblent être ignorées.

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -- pas besoin

  • Ajout lookup file, binddans /etc/resolv.conf- pas nécessaire

Lors des tests, il est important de garder à l’esprit que certaines applications possèdent leur propre cache DNS. Par exemple, le navigateur Chrome: il n’a aucun sens de rechercher des adresses IP à chaque rechargement de page. Si l’adresse IP facebook.cométait 173.252.110.27une minute auparavant, elle devrait toujours être la même maintenant, non? Il est donc difficile de tester les choses, car Chrome met quelques minutes à expirer pour mettre en cache son cache. À moins que vous ne connaissiez une méthode pour l'effacer.

Une méthode de test qui a bien fonctionné pour moi consiste à utiliser la fonctionnalité Nouvelle fenêtre de navigation privée de Chrome. Chaque fois que vous modifiez quelque chose /etc/hosts, ouvrez une nouvelle fenêtre de navigation privée pour afficher le résultat. Cela fonctionnera immédiatement. Les fenêtres non incognito fonctionneront aussi, à terme, cela ne prend que quelques minutes.

Arrêtez le mal en cours à Monica
la source
3

Essayez ceci :

# 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

Si cela ne fonctionne pas, voir l'article Block Facebook qui suggère également:

  • Blocage de Facebook sur le routeur
  • Bloquer Facebook avec une liste de blocage personnalisée OpenDNS

Si cela ne fonctionne toujours pas, vous pouvez essayer l'application SelfControl .

harrymc
la source
Le but de cette question n'est pas simplement de me laisser bloquer Facebook, j'aimerais comprendre pourquoi le fichier / etc / hosts ne fonctionne pas.
Seanieb
@seanieb Il a lié cette réponse à une autre réponse. Vous pouvez trouver l'explication ici.
3

Mac OS X El Capitan: Version 10.11.5

Safari: 9.1.1

J'ai dû utiliser une combinaison de toutes les réponses ci-dessus pour pouvoir enfin bloquer Facebook. Voici le contenu de mon /etc/hosts dossier:

# 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

Et bizarrement .. cela a fonctionné!

Pas:

  1. Sur votre terminal, lancez sudo vi /etc/hosts ou sudo pico /etc/hosts

  2. Enregistrez le contenu ci-dessus. (du commentaire # Block Facebook)

  3. Sur le terminal, lancez dscacheutil -flushcache.

  4. Sur Safari, effacez le cache. Barre de menu select Develop -> Empty Cache

  5. Vous devrez peut-être redémarrer votre ordinateur. Et le problème résolu!

Meghna Natraj
la source
Oui enfin: D. Travailler en Allemagne avec Mojave.
fl034
1

Essayez d'ajouter ces

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

Ensuite, il devrait être bloqué.

Karan Raj Baruah
la source