Por que não consigo bloquear o Facebook usando o / etc / hosts no Mountain Lion (OS X)?

34

Funcionou por um tempo na configuração antiga, mas depois parou de funcionar por algum motivo.

Aqui está o meu arquivo / etc / hosts do meu 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

Isso bloqueia o Reddit, mas não o Facebook.

Eu tentei liberar o cache DNS da máquina ("sudo killall -HUP mDNSResponder"), os arcos (FF e Chrome) e tentei reiniciar o computador.

E movi as entradas para a parte superior do arquivo, seguindo as orientações deste artigo , mas elas não funcionavam antes quando estavam na parte inferior. Cada vez que ele bloqueia o Reddit, mas não o Facebook.

seanieb
fonte
2
Isso é estranho. Também não funcionou para mim - eu me pergunto se isso tem a ver com a integração do Facebook do ML. Estou pensando em como testar essa teoria.
Jerry Seeger
1
Pesquisando na pasta do sistema todas as menções ao facebook.com encontradas (entre outras) /System/Library/Caches/com.apple.internetaccounts.domainscache.plist, que pareciam os meus culpados mais prováveis. Não tentei mexer com isso, mas pode ser o que você está procurando. Eu seria muito cauteloso, no entanto.
Jerry Seeger
1
Eu concordo com o @JerrySeeger, que provavelmente é uma função da integração do Facebook. Dito isto, por que você está bloqueando sites com um método tão inconstante? Se você deseja controlar o acesso à Internet, obtenha um proxy.
ta.speot.is
Eu só quero bloqueá-lo, pois isso arruina minha produtividade durante o dia. Não é grande coisa, mas o mais importante é que estou muito curioso sobre as razões técnicas pelas quais não posso bloqueá-lo.
Seanieb
1
O que acontece dig facebook.comou nslookup facebook.com?
JohannesM

Respostas:

43

harrymc está próximo, mas por algum motivo o OS X (a partir do 10.8.2) não respeita o endereço de loopback IPv6 de :: 1 (provavelmente um bug), portanto, você deve usar fe80 :: 1% lo0. O motivo pelo qual você precisa bloquear o IPv6 é porque o Facebook exibirá seu site pela V6, se o seu provedor de serviços de Internet oferecer suporte. Você pode verificar isso facilmente instalando um plug-in de navegador que exibe um ícone quando um site está sendo veiculado via IPv6. A razão pela qual isso não era um problema para você antes é porque o Facebook provavelmente só recentemente começou a veicular seu site pelo IPv6.

Portanto, a resposta correta é:

# 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
fonte
3
Oi Jesse, eu copio colei tudo no meu / etc / hosts e ainda consigo acessar o facebook. Ainda estou faltando alguma coisa?
gruszczy
não funciona para mim eider. Tentei bloqueá-lo no meu router também, outros sites são bloqueados bem, mas não Facebook
Adriantnt
3
ele trabalhou depois que eu parei de reinício safari
Mujah Maskey
5

Tente adicionar a seguinte linha /etc/resolv.conf

lookup file, bind

Isso deve forçar o OS X a usar / etc / hosts antes do DNS. O único problema é que, se você usar dhcp, esse arquivo será substituído a cada reinicialização.

John Siu
fonte
4

Eu também fui pisoteado por isso. Eu gosto de fazer apenas as etapas necessárias e hackear apenas os arquivos de configuração necessários e nada mais. Aqui está um resumo do que funciona e do que não funciona, o que é necessário ou não, a partir de hoje :

  • O corte de @ jesse-endahl funciona exatamente. Precisa usar fe80::1%lo0para o loopback do IPv6, as entradas para ::1parecem ser ignoradas.

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -- não é necessário

  • Adicionando lookup file, bindem /etc/resolv.conf- não é necessário

Uma coisa importante a ter em mente ao testar isso é que alguns aplicativos têm seu próprio cache DNS. Por exemplo o navegador Chrome: isso não faz sentido para procurar endereços IP em cada recarregamento da página, se o IP de facebook.comfoi 173.252.110.27um minuto atrás ele ainda deve ser o mesmo agora, certo? Isso dificulta o teste, porque leva alguns minutos para o Chrome expirar seu cache. A menos que você conheça um método para eliminá-lo.

Um método de teste que funcionou bem para mim é usar o recurso Nova Janela Anônima do Chrome. Sempre que alterar algo /etc/hosts, abra uma nova janela anônima para visualizar o resultado e ele deverá funcionar imediatamente. As janelas não anônimas também funcionarão; eventualmente, leva apenas alguns minutos.

Pare o dano contínuo a Monica
fonte
3

Tente o seguinte :

# 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

Se isso não funcionar, consulte o artigo Bloquear Facebook, que também sugere:

  • Bloqueando o Facebook no roteador
  • Bloquear o Facebook com uma lista de bloqueios personalizados do OpenDNS

Se isso ainda não funcionar, você pode tentar o aplicativo SelfControl .

harrymc
fonte
O objetivo desta pergunta não é simplesmente deixar-me bloquear o Facebook. Gostaria de entender por que o arquivo / etc / hosts não está funcionando.
Seanieb
@seanieb Ele vinculou esta resposta a outra resposta. Você pode encontrar a explicação lá.
3

Mac OS X El Capitan: versão 10.11.5

Safari: 9.1.1

Eu tive que usar uma combinação de todas as respostas acima para finalmente bloquear o Facebook. Aqui está o conteúdo do meu /etc/hosts arquivo:

# 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

E estranhamente .. isso funcionou!

Passos:

  1. No seu terminal, corra sudo vi /etc/hosts ou sudo pico /etc/hosts

  2. Salve o conteúdo acima. (a partir do comentário # Block Facebook)

  3. No terminal, corra dscacheutil -flushcache.

  4. No Safari, limpe o cache. Barra de menus selecione Develop -> Empty Cache

  5. Pode ser necessário reiniciar o computador. E problema resolvido!

Meghna Natraj
fonte
Sim finalmente: D. Trabalhando na Alemanha com o Mojave.
fl034 13/10
1

Tente adicionar estes

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

Então deve ficar bloqueado.

Karan Raj Baruah
fonte