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.
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
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.
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.
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:
Si cela ne fonctionne toujours pas, vous pouvez essayer l'application SelfControl .
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é.
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:
Sur votre terminal, exécutez Sudo vi /etc/hosts
ou Sudo pico /etc/hosts
Enregistrez le contenu ci-dessus. (du commentaire # Block Facebook
)
Sur le terminal, exécutez dscacheutil -flushcache
.
Sur Safari, effacez le cache. Barre de menu sélectionnez Develop
-> Empty Cache
Vous devrez peut-être redémarrer votre ordinateur. Et le problème résolu!