Perché non riesco a bloccare Facebook usando / etc / hosts su Mountain Lion (OS X)?


34

Ha funzionato per un po 'nella vecchia configurazione, ma poi ha smesso di funzionare per qualche motivo.

Ecco il mio file / etc / hosts dal mio 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

Questo blocca Reddit, ma non Facebook.

Ho provato a svuotare la cache DNS per la macchina ("sudo killall -HUP mDNSResponder"), i bowser (FF e Chrome) e ho provato a riavviare il computer.

E ho spostato le voci nella parte superiore del file su consiglio di questo articolo , ma non ha funzionato prima nemmeno quando era in fondo. Ogni volta bloccherebbe Reddit ma non Facebook.


2
È bizzarro. Inoltre non ha funzionato per me - mi chiedo se abbia a che fare con l'integrazione di Facebook di ML. Sto riflettendo su come testare questa teoria.
Jerry Seeger,

1
Cercando nella cartella di sistema tutte le menzioni di facebook.com trovate (tra gli altri) /System/Library/Caches/com.apple.internetaccounts.domainscache.plist che mi è sembrato il colpevole più probabile. Non ho provato a rovinarlo, ma potrebbe essere quello che stai cercando. Sarei molto cauto, però.
Jerry Seeger,

1
Concordo con @JerrySeeger sul fatto che probabilmente è una funzione dell'integrazione di Facebook. Detto questo, perché stai bloccando i siti con un metodo così instabile? Se vuoi controllare l'accesso a Internet, ottieni un proxy.
ta.speot.is

Voglio solo bloccarlo perché rovina la mia produttività durante il giorno. Non è un grosso problema, ma soprattutto sono molto curioso delle ragioni tecniche per cui non riesco a bloccarlo.
seanieb

1
Cosa succede su dig facebook.como nslookup facebook.com?
JohannesM,

Risposte:


43

harrymc è vicino ma per qualche motivo OS X (a partire dal 10.8.2) non rispetta l'indirizzo di loopback IPv6 di :: 1 (probabilmente un bug), quindi devi usare fe80 :: 1% lo0. Il motivo per cui devi bloccare IPv6 è perché Facebook ti servirà il loro sito su V6 se il tuo ISP lo supporta. Puoi verificarlo facilmente installando un plug-in del browser che visualizza un'icona quando un sito viene offerto tramite IPv6. Il motivo per cui questo non è stato un problema per te prima è perché Facebook probabilmente ha iniziato di recente a pubblicare il proprio sito su IPv6.

Quindi la risposta corretta è:

# 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

3
Ciao Jesse, copio tutto incollato nei miei / etc / hosts e posso ancora arrivare a Facebook. Mi manca ancora qualcosa?
gruszczy,

non funziona per me Eider. Ho provato a bloccarlo anche sul mio router, altri siti sono bloccati bene, ma non Facebook
adrianTNT

3
ha funzionato dopo che ho smesso di riavviare Safari
Mujah Maskey,

5

Prova ad aggiungere la seguente riga in /etc/resolv.conf

lookup file, bind

Questo dovrebbe costringere OS X a usare / etc / hosts prima di dns. L'unico problema è se usi dhcp, questo file verrà sovrascritto ad ogni riavvio.


4

Sono stato calpestato anche da questo. Mi piace fare solo i passi necessari e hackerare solo i file di configurazione necessari e niente di più. Ecco un riepilogo di ciò che funziona e cosa no, cosa è necessario o non è, ad oggi :

  • L'hack di @Jesse-endahl funziona esattamente. È necessario utilizzare fe80::1%lo0per il loopback IPv6, le voci per ::1sembrano essere ignorate.

  • sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder -- non necessario

  • L'aggiunta lookup file, bindin /etc/resolv.conf- non necessario

Una cosa importante da tenere a mente quando si verifica questo è che alcune applicazioni hanno la propria cache DNS. Ad esempio, il browser Chrome: esso non ha senso di ricercare gli indirizzi IP in ogni pagina ricarica, se l'IP di facebook.comera 173.252.110.27un minuto fa dovrebbe essere ancora la stessa ora, giusto? Questo rende difficile testare le cose, perché Chrome impiega un paio di minuti per far scadere la sua cache. A meno che tu non conosca un metodo per espellerlo.

Un metodo di test che ha funzionato bene per me è l'utilizzo della funzione Nuova finestra di navigazione in incognito di Chrome. Ogni volta che cambi qualcosa /etc/hosts, apri una nuova finestra di navigazione in incognito per visualizzare il risultato e dovrebbe funzionare immediatamente. Anche le finestre non in incognito funzioneranno, alla fine, ci vogliono solo un paio di minuti.


3

Prova questo :

# 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 non funziona, consulta l'articolo Blocca Facebook che suggerisce anche:

  • Blocco di Facebook sul router
  • Blocca Facebook con un elenco di blocchi personalizzati OpenDNS

Se il problema persiste, è possibile provare l'applicazione SelfControl .


L'obiettivo di questa domanda non è semplicemente lasciarmi bloccare Facebook, vorrei capire perché il file / etc / hosts non funziona.
martedì

@seanieb Ha collegato questa risposta a un'altra risposta. Puoi trovare la spiegazione lì.

3

Mac OS X El Capitan: versione 10.11.5

Safari: 9.1.1

Ho dovuto usare una combinazione di tutte le risposte sopra per poter finalmente bloccare Facebook. Ecco i contenuti del mio /etc/hosts file:

# 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 stranamente .. ha funzionato!

passi:

  1. Sul tuo terminale, esegui sudo vi /etc/hosts o sudo pico /etc/hosts

  2. Salva i contenuti sopra. (dal commento # Block Facebook)

  3. Sul terminale, corri dscacheutil -flushcache.

  4. Su Safari, svuota la cache. Barra dei menu selezionare Develop -> Empty Cache

  5. Potrebbe essere necessario riavviare il computer. E problema risolto!


Sì finalmente: D. Lavorare in Germania con Mojave.
fl034,

1

Prova ad aggiungere questi

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

Quindi dovrebbe essere bloccato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.