Comment puis-je obtenir OSX Mavericks pour remarquer un changement DNS dans `/ etc / hosts`?

24

Une façon courante de "bloquer" un site Web (par exemple, pour l'éliminer en tant que distraction) consiste à modifier /etc/hostset à pointer le domaine vers l'adresse de bouclage. Par exemple:

# Stop goofing off
127.0.0.1 youtube.com

Sur Mavericks, je trouve que des changements comme celui-ci sont apparemment ignorés par le système d'exploitation; après avoir édité le fichier (avec sudo) et enregistré, le site qui doit être bloqué se charge toujours.

J'ai essayé de réinitialiser mon cache DNS comme suit:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Mais le site se charge toujours.

Comment puis-je demander à OSX Mavericks de remarquer un changement /etc/hosts?

Nathan Long
la source
1
Serait-ce que c'est le cache DNS du navigateur qui n'est pas vidé? Quelle IP ping youtube.comutilise?
Leonid Shevtsov
Remarque: si vous utilisez DNS pour bloquer temporairement des sites, selfcontrolapp.com pour OSX fonctionne bien. Il modifie le fichier hosts et semble vider automatiquement le cache du navigateur. Ils mentionnent également des applications similaires pour d'autres plateformes: github.com/SelfControlApp/selfcontrol/wiki/FAQ
Nathan Long

Réponses:

19

Selon la page de manuel hosts (5) , le /etc/hostsfichier est utilisé par mDNSResponder. Vos tentatives vident correctement le cache de l'ordinateur, mais vous devez également vider le cache privé du navigateur.

Après chaque modification de /etc/hostsréinitialisation du mDNSRespondercache à l'aide de cette note technique Apple, OS X: Comment réinitialiser le cache DNS :

sudo dscacheutil -flushcache

Après cela, réinitialisez les caches de votre navigateur :

  • Safari: utilisez l'élément de menu Safari > Réinitialiser Safari .
  • Chrome: utilisez l'élément de menu Chrome > Effacer les données de navigation .
Graham Miln
la source
1
Cela l'a corrigé. Sous "Effacer les données de navigation" de Chrome, il y a des cases à cocher pour les types de données. "Vider le cache" est celui qui convient.
Nathan Long
5

Supprimez le cache de votre navigateur et ajoutez-le 127.0.0.1 www.youtube.comà votre fichier hôte.

youtube.comdécide de www.youtube.com. Votre navigateur met ces informations en cache et vous redirige vers la page www.

Napcae
la source
0

Dans OS X 10.9 Mavericks, il est difficile d'essayer de répertorier plusieurs noms d'hôtes sur la même ligne de / etc / hosts. J'ai essayé tous les autres conseils liés au DNS dans ce post et le post associé en vain, jusqu'à ce que je tombe sur le lien "problèmes" ci-dessus.

J'avais l'habitude d'avoir quelque chose comme ça:

127.0.0.1 localhost host1 host2 host3 ...

mais j'ai trouvé que la résolution de ces hôtes prendrait une éternité ou ne fonctionnerait pas du tout. Essayer d'accéder aux sites via des navigateurs serait généralement OK (bien que parfois très lent à résoudre), mais essayer de faire un ping depuis la ligne de commande ne fonctionnerait pas.

Le changer au format suivant a fait que tout fonctionnait bien pour moi, et les choses fonctionnent maintenant très bien avec le ping, dans le navigateur et partout ailleurs:

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

Plus de détails .

Scott Dudley
la source
0

En plus de la réponse de Graham, essayez chrome: // net-internals / # dns (pour Google Chrome) pour voir ce qui est mis en cache. Cliquez ensuite sur Vider le cache de l'hôte pour tout effacer.

David Hempy
la source