Come posso ottenere che i Maverick OSX notino un cambio DNS in "/ etc / hosts"?

23

Un modo comune per "bloccare" un sito Web (ad esempio eliminarlo come distrazione) è modificare /etc/hosts e puntare il dominio sull'indirizzo di loopback. Ad esempio:

# Stop goofing off
127.0.0.1 youtube.com

Su Mavericks, trovo che modifiche come questa sono apparentemente ignorate dal sistema operativo; dopo aver modificato il file (con sudo) e averlo salvato, il sito che deve essere bloccato viene caricato ancora.

Ho provato a reimpostare la mia cache DNS come segue:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Ma il sito continua a caricare.

Come faccio a convincere OSX Mavericks a notare una modifica a /etc/hosts ?

    
posta Nathan Long 18.02.2014 - 15:10
fonte

4 risposte

18

In base alla pagina di manuale degli host (5) , il file /etc/hosts viene utilizzato da mDNSResponder . I tuoi tentativi stanno scaricando correttamente la cache del computer, ma devi anche svuotare la cache privata del browser.

Dopo ogni modifica di /etc/hosts reimposta la cache mDNSResponder utilizzando questa nota tecnica Apple, OS X: Come ripristinare il DNS Cache :

sudo dscacheutil -flushcache

Dopo aver fatto ciò, reimposta le cache del tuo browser :

  • Safari: usa la voce di menu Safari > Reimposta Safari .
  • Chrome: utilizza la voce di menu Chrome > Cancella dati di navigazione .
risposta data 18.02.2014 - 15:49
fonte
5

Elimina la cache del browser e aggiungi 127.0.0.1 www.youtube.com al file host.

youtube.com si risolve in www.youtube.com . Il tuo browser sta memorizzando le informazioni nella cache e ti reindirizza alla pagina www.

    
risposta data 18.02.2014 - 15:39
fonte
0

In OS X 10.9 Mavericks, ci sono problemi con il tentativo di elencare più hostname su la stessa riga di / etc / hosts. Ho provato tutti gli altri suggerimenti relativi al DNS in questo post e il post correlato inutilmente, finché non sono incappato nel link "problemi" sopra.

Avevo qualcosa del genere:

127.0.0.1 localhost host1 host2 host3 ...

ma ho trovato che la risoluzione di quegli host avrebbe richiesto per sempre o non funzionava affatto. Cercare di accedere ai siti tramite browser sarebbe generalmente OK (anche se a volte molto lento da risolvere), ma provare a eseguire il ping dalla riga di comando non funzionerebbe.

Cambiarlo nel formato seguente ha reso tutto a posto per me, e le cose ora funzionano alla grande con ping, nel browser e ovunque:

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

Maggiori dettagli .

    
risposta data 27.08.2014 - 16:24
fonte
0

Oltre alla risposta di Graham, prova chrome: // net-internals / # dns (per Google Chrome) per vedere cosa viene memorizzato nella cache. Quindi fai clic su Cancella cache host per cancellare tutto.

    
risposta data 10.03.2015 - 15:07
fonte

Leggi altre domande sui tag