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

31

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

Aqui está o meu arquivo / etc / hosts do meu MacBook Air da 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 do DNS para a máquina ("sudo killall -HUP mDNSResponder"), os bowsers (FF e Chrome) e tentei reiniciar o computador.

E movi as entradas para o topo do arquivo no conselho deste artigo , mas não funcionou antes quando estava no fundo também. Cada vez que bloquearia o Reddit, mas não o Facebook.

    
por seanieb 01.02.2013 / 01:32

6 respostas

39

harrymc está próximo, mas por alguma razão o OS X (a partir de 10.8.2) não respeita o endereço de loopback IPv6 de :: 1 (provavelmente um bug), então você tem que usar fe80 :: 1% lo0. A razão pela qual você precisa bloquear o IPv6 é porque o Facebook irá lhe oferecer seu site através da V6 se o seu ISP o suportar. Você pode facilmente verificar isso instalando um plug-in do navegador que exibe um ícone quando um site está sendo exibido via IPv6. A razão pela qual isso não foi um problema para você antes é porque o Facebook só recentemente começou a servir seu site através do IPv6.

Então 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
    
por 05.02.2013 / 02:12
5

Tente adicionar a seguinte linha em /etc/resolv.conf

lookup file, bind

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

    
por 04.02.2013 / 05:21
4

Eu fui pisado por isso também. Eu gosto de fazer apenas os passos necessários e cortar 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, em hoje :

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

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

  • Adicionando lookup file, bind em /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 de DNS. Por exemplo, o navegador Google Chrome: não faz sentido procurar endereços IP em todas as páginas recarregadas, se o IP de facebook.com fosse 173.252.110.27 um minuto atrás, ainda assim seria o mesmo agora, certo? Isso dificulta o teste das coisas, pois leva alguns minutos para o Chrome expirar o 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. Toda vez que você alterar alguma coisa em /etc/hosts , abra uma nova janela anônima para visualizar o resultado e ela deverá funcionar imediatamente. As janelas não-anônimas também funcionarão, eventualmente, leva apenas alguns minutos.

    
por 10.08.2014 / 09:24
3

Experimente este :

# 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
  • Bloqueie o Facebook com uma lista de bloqueios personalizados do OpenDNS

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

    
por 04.02.2013 / 19:52
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 ele deve ficar bloqueado.

    
por 03.02.2013 / 07:23
1

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 poder finalmente bloquear o Facebook. Aqui está o conteúdo do meu arquivo /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

E estranhamente ... isso funcionou!

Etapas:

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

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

  3. No terminal, execute dscacheutil -flushcache .

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

  5. Talvez seja necessário reiniciar o computador. E problema resolvido!

por 12.02.2017 / 20:56