6 votes

Le fichier Hosts sur Mountain Lion s'est soudainement arrêté de fonctionner

J'ai utilisé mon fichier hosts (situé dans /private/etc/hosts) pendant plusieurs mois pour bloquer les sites web distrayants pendant la journée de travail. Cela fonctionnait très bien jusqu'à maintenant. Aujourd'hui, il a soudainement cessé de fonctionner.

Quelques exemples de lignes du fichier hosts :

127.0.0.1 facebook.com
127.0.0.1 www.facebook.com

J'ai placé ce texte dans le fichier hosts en procédant comme suit :

sudo nano /etc/hosts
a écrit les lignes ci-dessus, puis ^O pour écrire le fichier, Enter pour confirmer le nom du fichier et ^X pour quitter l'éditeur.

Entre l'IP localhost et le nom de domaine, j'ai un onglet. Les fins de ligne sont de type Unix (LF), et ce qui est bizarre, c'est que lorsque j'utilise la commande ping commande, il semble faire son travail correctement :

ping facebook.com
PING facebook.com (127.0.0.1) : 56 octets de données
64 octets de 127.0.0.1 : icmp_seq=0 ttl=64 time=0.137 ms
64 octets de 127.0.0.1 : icmp_seq=1 ttl=64 time=0.122 ms
64 octets provenant de 127.0.0.1 : icmp_seq=2 ttl=64 time=0.118 ms
64 octets provenant de 127.0.0.1 : icmp_seq=3 ttl=64 time=0.110 ms
^C
--- facebook.com statistiques ping ---
4 paquets transmis, 4 paquets reçus, 0,0% de perte de paquets
aller-retour min/avg/max/stddev = 0,110/0,122/0,137/0,010 ms

Mais lorsque j'essaie d'accéder à facebook.com dans Safari ou Firefox, je suis toujours en mesure d'accéder au site web. C'est également le cas pour d'autres sites web que j'ai bloqués de la même manière. J'ai vidé le cache des deux navigateurs, mais cela n'a pas résolu le problème.

Que puis-je faire pour résoudre ce problème ?

Mise à jour 1 : Je vérifie maintenant tous les sites Web que j'ai bloqués de cette façon et j'ai découvert que le comportement n'est pas cohérent entre les différents domaines. Ce sont les "pertes de temps" que je bloque dans /private/etc/hosts :

Block time-killers

127.0.0.1 9gag.com
127.0.0.1 flabber.nl
127.0.0.1 geenstijl.nl
127.0.0.1 dumpert.nl
127.0.0.1 facebook.com
127.0.0.1 www.9gag.com
127.0.0.1 www.flabber.nl
127.0.0.1 www.geenstijl.nl
127.0.0.1 www.dumpert.nl
127.0.0.1 www.facebook.com

Tous les sites de cette liste font un ping vers 127.0.0.1 Cependant 9gag.com y flabber.nl sont inaccessibles par tout navigateur, mais geenstijl.nl , dumpert.nl y facebook.com sont accessible.

J'ai essayé de redémarrer, mais cela n'a pas résolu le problème. Avant ce problème, je n'ai pas modifié la configuration du système par une mise à jour quelconque.

Mise à jour 2 : Il y a trois heures, je pouvais accéder facebook.com par Safari et Firefox, maintenant je ne peux plus. geenstijl.nl y dumpert.nl sont cependant toujours accessibles. Je n'ai rien modifié au cours des trois dernières heures, j'ai juste utilisé Word et navigué sur le web avec Safari.

Mise à jour 3 : Aujourd'hui, quatre heures après la deuxième mise à jour, le fichier hosts fonctionne à nouveau normalement. En tâtonnant avec le fichier hosts, j'ai supprimé les entrées qui ne fonctionnaient pas et je les ai réintroduites une par une, en testant chacune d'entre elles après son ajout. Je n'ai aucune idée de ce qui se passait et je ne peux plus lancer wireshark sur le trafic car je ne peux observer aucun comportement défectueux.

Mise à jour 4 : Et le problème est de retour. Les mêmes sites que dans la mise à jour 1 présentent le comportement erroné.

Mise à jour 5 :
Tout fonctionne à nouveau comme il se doit. Je garderai les solutions postées ici à l'esprit si je rencontre à nouveau cette erreur.

4voto

Joel Rondeau Points 4467

La résolution DNS dans OS X s'est détraquée lors de la mise à jour de Snow Leopard à Lion. Après une installation propre, tout devrait fonctionner correctement, mais si vous avez suivi la voie de la mise à jour, les choses peuvent se dérégler.

Option 1 : adressage IPv6

De nombreux sites web et fournisseurs d'accès prennent en charge l'IPv6 si l'IPv4 est inaccessible. Mettez les définitions au début de votre /etc/hosts comme ça :

# Block Facebook IPv4
127.0.0.1   www.facebook.com
127.0.0.1   facebook.com

# Block Facebook IPv6
fe80::1%lo0 www.facebook.com
fe80::1%lo0 facebook.com

Option 2 : utiliser DNSMasq

Si les conseils précédents échouent, vous pouvez installer DNSMasq .

2voto

Yeris Antonio Points 51

Après toute modification de /etc/hosts exécuter dscacheutil -flushcache à la ligne de commande pour vider le cache DNS local. Cela fonctionne pour moi à chaque fois, à une exception près : Firefox a son propre cache DNS, vous devrez donc le redémarrer.

1voto

lornix Points 10746

Le système OSX n'utilise pas /etc/hosts pour la plupart de ses opérations réseau. Pour l'essentiel, les commandes du terminal/de la ligne de commande (les trucs d'Unix) utilisent PRINCIPALEMENT /etc/hosts, tandis que tout ce qui est Maccy ( !) utilise les tables internes de type plist conservées ailleurs.

L'utilisation n'est pas cohérente et problématique car elle rend le "unix" OSX non déterministe. Comme vous l'avez découvert.

Je n'ai plus de mac pour savoir exactement où le Mac OSX stocke son émulation du fichier hosts, mais j'espère que ces informations vous mettront sur la bonne voie.

Je sais qu'il sera dans le répertoire /Library (et/ou ~/Library), et les fichiers plist sont compressés, donc vous ne pouvez pas simplement les rechercher par grep. Hum, la commande 'plutil' peut décompresser/afficher le contenu des fichiers .plist (je crois que c'est son nom). Vous pouvez peut-être commencer par un

find ~/Library /Library -iname "*host*" -ls

pour voir ce qui se cache dans cette masse de complexité semblable à celle de Windows.

Ce n'est pas exactement unix (netbsd)... mais ce n'est pas exactement ... quel que soit le nom qu'on lui donne (GUI ?). Même Windows est cohérent. Peut-être faux... mais cohérent.

1voto

Alan Storm Points 1617

J'ajoute juste un autre élément de vaudou ici. Les entrées de mon fichier hosts sous 10.8.2 ont été complètement ignorées par le système. jusqu'à .

  1. J'ai déplacé mes entrées en haut du fichier.

  2. J'ai utilisé une seule tabulation pour séparer l'adresse IP et le nom d'hôte.

  3. J'ai jeté dans un $ dnscacheutil -flushcache juste pour être sûr

Je n'ai pas cherché à savoir pourquoi cela se produit, je ne fais que transmettre le rituel qui a résolu le problème pour moi.

1voto

Dmitry Kremer Points 11

J'ai constaté que sur OS X 10.9, Safari et Firefox continuaient à accéder aux domaines bloqués jusqu'à ce que j'aie implémenté les blocs IPv6 dans le fichier etc/hosts. Seul Chrome était affecté par les blocs IPv4.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X