web-dev-qa-db-fra.com

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

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 le conseil de cet article , mais cela ne fonctionnait pas avant quand c'était au en bas non plus. À chaque fois, cela bloquerait Reddit mais pas Facebook.

34
seanieb

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. Si vous devez bloquer IPv6, c'est parce que Facebook vous servira leur site via la version 6 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 cela ne vous a pas posé de problème auparavant est que Facebook a récemment commencé à desservir leur 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
42
Jesse Endahl

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.

5
John Siu

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, à compter de aujourd'hui :

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

  • Sudo dscacheutil -flushcache; Sudo killall -HUP mDNSResponder - pas nécessaire

  • Ajout de lookup file, bind dans /etc/resolv.conf - non 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 de facebook.com était 173.252.110.27 il ya une minute, elle devrait toujours être la même, 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 utilise la fonctionnalité Nouvelle fenêtre de navigation privée de Chrome. Chaque fois que vous modifiez quelque chose dans /etc/hosts, ouvrez une nouvelle fenêtre de navigation privée pour afficher le résultat. Cela devrait fonctionner immédiatement. Les fenêtres non incognito fonctionneront aussi, à terme, cela ne prend que quelques minutes.

4
janos

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 Bloquez 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 .

3
harrymc

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é.

1
Karan Raj Baruah

Mac OS X Capitaine: 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 fichier /etc/hosts:

# 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, exécutez Sudo vi /etc/hosts ou Sudo pico /etc/hosts

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

  3. Sur le terminal, exécutez dscacheutil -flushcache.

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

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

1
Meghna Natraj