web-dev-qa-db-fra.com

fichier hôtes ignoré, comment dépanner?

Le fichier hosts sur les ordinateurs Windows est utilisé pour lier certaines chaînes de noms à des adresses IP spécifiques pour remplacer d'autres méthodes de résolution de noms.

Souvent, on décide de modifier le fichier hosts, et découvre que les modifications refusent de prendre effet, ou que même les anciennes entrées du fichier hosts sont ignorées par la suite. Un certain nombre d'erreurs "gotcha" peuvent provoquer cela, et il peut être frustrant de savoir laquelle.

Face au problème de Windows qui ignore un fichier d'hôtes, quel est un protocole de dépannage complet qui peut être suivi?


Cette question a des doublons sur SO, tels que fichier HOSTS ignoré

Cependant, ceux-ci ont tendance à traiter un cas spécifique, et une fois que toute erreur commise par le PO est découverte, la discussion est terminée. Si vous n'avez pas fait la même erreur, une telle discussion n'est pas très utile. J'ai donc pensé qu'il serait plus utile d'avoir un protocole général pour résoudre tous les problèmes liés aux hôtes qui couvriraient tous les cas .

158
Superbest

Sur la base de ma propre expérience et de ce que j'ai rencontré pendant la recherche sur Google, voici quelques choses à essayer:

1. Avez-vous vérifié que cela fonctionne correctement?

Les modifications apportées aux hôtes doivent prendre effet immédiatement, mais Windows met en cache les données de résolution de noms afin que pendant un certain temps, les anciens enregistrements puissent être utilisés. Ouvrez une ligne de commande (Windows + R, cmd, Entrée) et tapez:

ipconfig /flushdns

Pour supprimer les anciennes données. Pour vérifier si cela fonctionne, utilisez (en supposant que vous avez une entrée ipv4 dans vos hôtes pour www.example.com, ou une entrée ipv6 dans vos hôtes pour ipv6.example.com):

ping www.example.com -n 1
ping -6 ipv6.example.com -n 1

Et voyez s'il utilise la bonne IP. Si oui, votre fichier d'hôtes est correct et le problème est ailleurs.

En outre, vous pouvez réinitialiser le cache NetBios avec (ouvrez la console en tant qu'administrateur ou cela échouera):

nbtstat -R

Vous pouvez vérifier les données actuelles dans le cache DNS avec:

ipconfig /displaydns | more

2. Bases

  • Votre fichier d'hôtes est-il nommé correctement? Ce doit être hosts et non Host, etc.
  • L'extension est-elle correcte? Il ne doit pas avoir d'extension (hosts pas hosts.txt) - soyez prudent si vous avez configuré des fenêtres pour masquer les extensions connues, vérifiez les propriétés pour être sûr: le type de fichier d'hôtes correct apparaîtra simplement comme "Fichier".
  • Avez-vous suivi la syntaxe correcte ? Avez-vous accidentellement préfixé des lignes avec un hachage (#) qui indique des commentaires?
  • Avez-vous pris en charge toutes les variantes (www.example.com et example.com - le plus sûr pour ajouter les deux)?

3. Espace blanc

Le format de chaque ligne est IP address, puis un onglet horizontal (code d'échappement \t, ASCII HT, hex 0x09) ou un seul espace (hex 0x20), puis le nom d'hôte, c'est-à-dire. www.example.com, puis enfin un retour chariot suivi d'un saut de ligne, (codes d'échappement \r\n, ASCII CRLF, hex 0x0d 0x0a).

Exemples d'entrées, utilisant des images de contrôle Unicode pour indiquer des caractères de contrôle. (Ne copiez pas et collez-les dans votre fichier d'hôtes!)

192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊

Les octets individuels peuvent être visualisés dans Notepad ++ avec le plugin hex éditeur . Notepad ++ affichera également des caractères spéciaux (Affichage -> Afficher le symbole) afin que vous puissiez facilement inspecter le nombre et le type de caractères d'espacement.

Si vous avez copié et collé des entrées d'hôtes de quelque part, vous pouvez vous retrouver avec plusieurs espaces. En théorie, les hôtes prennent en charge plusieurs espaces séparant les deux colonnes, mais c'est une autre chose à essayer si rien d'autre ne fonctionne.

Pour être sûr, assurez-vous que toutes les lignes de votre fichier d'hôtes utilisent des tabulations ou des espaces, pas les deux.

Enfin, terminez le fichier avec une ligne vierge.

4. Clé de registre

Il existe une clé de registre spécifiant l'emplacement du fichier hosts. Soi-disant, Windows ne prend pas réellement en charge la mise du fichier d'hôtes dans d'autres emplacements, mais vous voudrez peut-être vérifier. La clé est:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

L'entrée doit être:

%SystemRoot%\System32\drivers\etc

5. Autorisations

Parfois, il y a des problèmes avec les autorisations sur le fichier, les attributs du fichier et des choses similaires. Pour recréer le fichier avec les autorisations par défaut:

  1. Créez un nouveau fichier texte sur votre bureau.
  2. Copiez et collez le contenu de votre fichier d'hôtes actuel dans ce fichier dans le Bloc-notes.
  3. Enregistrez le nouveau fichier texte et renommez-le en hosts.
  4. Copiez ( ne déplacez pas ) le fichier vers votre %SystemRoot%\System32\drivers\etc répertoire et écraser l'ancien fichier.

Le dernier point est important: la copie fonctionne, pas le déplacement.

Le compte local Users doit pouvoir lire le fichier hosts . Pour vous assurer (sous Windows 7):

  1. Aller vers %SystemRoot%\System32\drivers\etc dans l'Explorateur Windows.
  2. Si vous ne voyez pas le fichier hosts, assurez-vous que vous pouvez voir les fichiers cachés et les fichiers système .
  3. Cliquez avec le bouton droit sur le fichier hosts et sélectionnez Properties dans le menu contextuel.
  4. Dans le hosts Properties fenêtre, cliquez sur l'onglet Security.
  5. Examinez la liste des noms dans le Group or user names: boîte. Si %COMPUTERNAME%\Users est présent, cliquez dessus pour voir les permissions.
  6. Si Users n'est pas présent ou est présent mais ne dispose pas de l'autorisation Read, cliquez sur Edit....
  7. Si Users n'est pas présent, cliquez sur Add..., tapez Users, cliquez sur Check Names, puis cliquez sur OK ou appuyez sur Entrée.
  8. Sélectionnez Users et assurez-vous que Read & execute est coché dans la colonne Allow. Cliquez sur OK. Si un Windows Security une boîte d'alerte apparaît, choisissez Yes pour continuer.
  9. Cliquez sur OK pour fermer le hosts Properties fenêtre.
  10. Allez à la section 1 de cette réponse et suivez les instructions pour vérifier si cela fonctionne maintenant.

6. Encodage

Le fichier d'hôtes doit être codé en ANSI ou UTF-8 sans BOM. Vous pouvez le faire avec Fichier -> Enregistrer sous.

7. Procurations

Si un proxy est configuré, il peut contourner le fichier hosts. La solution consiste à ne pas utiliser le proxy ou à le configurer pour ne pas le faire.

Pour vérifier, accédez à votre Internet Explorer -> Options Internet -> Connexions -> Paramètres LAN. Si tout est vide et que "Détecter automatiquement les paramètres" est coché, vous n'utilisez pas de proxy.

Si vous comptez sur un proxy pour accéder au Web et que vous ne souhaitez donc pas le désactiver, vous pouvez ajouter des exceptions en accédant à Internet Explorer -> Options Internet -> Connexions -> Paramètres LAN -> Serveur proxy/Avancé. Ajoutez ensuite vos exceptions à la zone de texte Exceptions. Par exemple. localhost;127.0.0.1;*.dev

8. Adresse DNS

(Cela peut également résoudre les problèmes de proxy.)

Accédez aux propriétés de vos connexions réseau, puis aux paramètres TCP/IP et remplacez le premier serveur DNS par 127.0.0.1 (localhost). Le second devrait probablement être l'IP de votre DNS réel.

Ce n'est pas nécessaire pour que le fichier hosts fonctionne , mais cela peut aider dans votre cas si quelque chose est étrangement configuré.

9. Adresses locales

Si vous utilisez une entrée de domaine .local sous la forme de myhost.local et qu'elle est ignorée, veuillez essayer ce qui suit

x.x.x.x myhost.local www.myhost.local

même si le www.myhost.local n'existe pas. Windows n'ajoute en quelque sorte pas son groupe de travail ou son domaine local.

229
Superbest

Assurez-vous d'avoir d'abord mis l'adresse IP puis le "domaine" comme ceci:

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev
16
Gustaf

Veuillez ajouter les autorisations de vérification des fichiers. J'ai constaté que même si j'avais des droits d'administrateur local sur l'ordinateur et donc sur les hôtes. Ce n'est que lorsque j'ai ajouté des utilisateurs locaux aux autorisations de fichier d'hôtes avec Lecture et Lecture et exécution, puis un ipconfig/flushdns que les hôtes sont devenus actifs.

11
David Siviour

Dans mes cas, j'ai essayé le fichier créé par Windows 7: C:\Windows\System32\drivers\etc\hosts.ics.

hosts.ics:

# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to Host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.

Par conséquent, Windows ignore les paramètres dans C:\Windows\System32\drivers\etc\hosts et l'utilise à partir de hosts.ics.

7
Unick

Je rencontrais le même problème, les entrées de fichiers hôtes étant ignorées. J'ai tout essayé dans ce sujet et dans de nombreux autres sans succès. J'ai pensé que je publierais ce qui a fonctionné pour moi au cas où quelqu'un d'autre tomberait dessus.

  1. Ouvrez l'Explorateur Windows en tant qu'administrateur
  2. SUPPRIMER le fichier hosts
  3. Ouvrez le bloc-notes en tant qu'administrateur et créez un nouveau fichier d'hôtes
  4. Commencez à zéro et ajoutez des entrées.
  5. Assurez-vous que le fichier hosts n'a pas d'extension .txt

Remarque: simplement ouvrir le fichier hosts et supprimer le contenu, vérifier qu'il était de 0 Ko et l'ajouter à nouveau n'a pas fonctionné. Je soupçonne un problème d'autorisations sur le fichier.

3
PSA4444

Un problème manqué dans la discussion ci-dessus est les noms non qualifiés (noms qui n'incluent pas de point) dans le fichier hosts. Vos paramètres réseau peuvent démarrer à ce stade et ajouter automatiquement votre propre domaine à la fin d'un domaine non qualifié. Par conséquent, le nom peut ne pas se résoudre, ou pire encore, se résoudre à une machine complètement différente.

1
user287479

Assurez-vous que vous avez entré les valeurs comme IP NAME, pas aussi NAME IP.

Cela peut se produire s'il n'y a, par exemple, qu'une seule entrée dans le fichier et lorsque vous ignorez le texte de mise en commentaire.

1
knb

J'ai passé des heures, probablement des jours à ce sujet.

La sécurité IBM Trusteer Endpoint Rapport peut provoquer ce problème.

J'avais ajouté mysite.com à sa liste de sites de confiance.

Je pense que dans le cadre de sa sécurité, il empêche les logiciels malveillants ou les virus de vous détourner vers des sites alternatifs.

A pris mysite de la liste des sites de confiance et il ne vérifie et "corrige" plus le détournement de fichiers de mes hôtes.

J'espère que cela aidera quelqu'un à résoudre son problème.

1
Bird on the Hand

Mon fichier d'hôtes est ignoré jusqu'à ce que je dispose d'une connexion réseau sur mon ordinateur portable (Windows 7). Une fois que je me connecte à un réseau, tout fonctionne comme prévu. Évidemment, sans réseau, je ne peux pas envoyer de ping aux hôtes, etc., mais je m'attendais quand même à ce que Windows obtienne ses adresses IP à partir du fichier hosts. Ce n'est pas le cas. Même après la déconnexion, il recherche toujours les adresses OK, mais entre le redémarrage de l'ordinateur et la première connexion à un réseau, il ignore le fichier hosts.

(Soit dit en passant, les tabulations, les espaces et aucun retour chariot ne sont pas pertinents pour autant que je sache).

0
Denis Howe

Dans mon cas, le problème était que je copiais un fichier d'hôtes à partir d'un répertoire chiffré et remplaçais les etc/hosts par cela. J'ai dû regarder les propriétés et décocher la case "crypter le fichier".

0
Janos

Dans Windows, assurez-vous que HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath pointe vers le répertoire du fichier hosts.

0
Geln Yang