212 votes

Le fichier hosts est ignoré, comment le résoudre ?

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

Souvent, on décide de modifier le fichier hosts, et on 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 être à l'origine de ce problème, et il peut être frustrant de trouver laquelle.

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


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

Cependant, ils ont tendance à traiter d'un cas spécifique, et une fois que l'erreur commise par le PO est découverte, la discussion est terminée. Si vous n'avez pas commis 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 couvrirait tous cas.

312voto

Superbest Points 4925

Sur la base de ma propre expérience et de ce que j'ai trouvé sur Google, voici quelques conseils à suivre :

1. Avez-vous vérifié qu'il fonctionne correctement ?

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

ipconfig /flushdns

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

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

Et voyez si elle utilise la bonne IP. Si oui, votre fichier hosts est correct et le problème est ailleurs.

Vous pouvez également réinitialiser le cache de 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

NB : nslookup ne regarde pas le fichier hosts. Voir NSLOOKUP et NBLOOKUP donnent une adresse IP ; PING en trouve une autre.

2. Principes de base

  • Votre fichier hosts est-il nommé correctement ? Il devrait être hosts et non host etc.
  • L'extension est-elle correcte ? Il ne devrait pas avoir d'extension ( hosts no hosts.txt ) - attention, si vous avez configuré Windows pour qu'il cache les extensions connues, vérifiez les propriétés pour être sûr : le type de fichier hôte correct apparaîtra sous la forme d'un simple "Fichier".
  • Avez-vous suivi le syntaxe correcte ? Avez-vous accidentellement préfixé des lignes avec un dièse ( # ) qui indique des commentaires ?
  • Avez-vous pris soin de toutes les variantes ( www.example.com y example.com - le plus sûr est d'ajouter les deux) ?

3. Espace blanc

Le format de chaque ligne est le suivant IP address puis une tabulation horizontale (code d'échappement \t , ASCII HT , hex 0x09 ) ou un seul espace (hex 0x20 ), puis le nom de l'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 les images de contrôle Unicode pour indiquer les caractères de contrôle. (Ne copiez pas ces images et ne les collez pas dans votre fichier d'hôtes !)

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

Les octets individuels peuvent être consultés dans Notepad++ con el plugin pour l'éditeur hexagonal . Notepad++ affichera également les caractères spéciaux (View -> Show Symbol) afin que vous puissiez facilement vérifier le nombre et le type de caractères d'espacement.

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

Pour plus de sécurité, assurez-vous que toutes les lignes de votre fichier hosts utilisent soit des tabulations, soit des espaces, mais pas les deux.

Enfin, terminez le fichier par une ligne blanche.

4. Clé de registre

Il existe une clé de registre spécifiant l'emplacement du fichier hosts. Il semblerait que Windows ne permette pas de placer le fichier hosts à un autre endroit, mais vous pouvez vérifier. La clé est la suivante :

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

L'entrée doit être :

%SystemRoot%\System32\drivers\etc

Ou, dans une fenêtre d'invite de commande, tapez :

reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -v DataBasePath

qui devrait afficher quelque chose de similaire à :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
DataBasePath    REG_EXPAND_SZ    %SystemRoot%\System32\drivers\etc

5. Permissions

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

  1. Créez un nouveau fichier texte sur votre bureau.
  2. Copiez et collez le contenu de votre fichier hosts actuel dans ce fichier dans le Bloc-notes.
  3. Sauvegardez le nouveau fichier texte et renommez-le en hosts .
  4. Copie ( ne pas bouger ) le fichier dans votre %SystemRoot%\System32\drivers\etc et écraser l'ancien fichier.

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

Le local Users compte doit être capable de lire le fichier hosts . Pour vous en assurer (sous Windows 7) :

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

Ou, dans une fenêtre d'invite de commande, tapez :

icacls %SystemRoot%\System32\drivers\etc\hosts

qui devrait afficher quelque chose comme :

C:\WINDOWS\System32\drivers\etc\hosts NT AUTHORITY\SYSTEM:(F)
                                      NT AUTHORITY\SYSTEM:(I)(F)
                                      BUILTIN\Administrators:(I)(F)
                                      BUILTIN\Users:(I)(RX)
                                      APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
                                      APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(I)(RX)

Vous devriez voir un (R) après BUILTIN\Users .

6. Encodage

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

7. Proxies

Si vous avez configuré un proxy, il peut contourner le fichier hosts. La solution est de ne pas utiliser le proxy, ou de le configurer pour qu'il ne le fasse pas.

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

Si vous utilisez un proxy pour accéder au Web et que vous ne souhaitez pas le désactiver, vous pouvez ajouter des exceptions en allant dans Internet Explorer -> Options Internet -> Connexions -> Paramètres LAN -> Serveur proxy / Avancé. Ajoutez ensuite vos exceptions dans 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).

Allez dans les propriétés de vos connexions réseau, puis dans les paramètres TCP/IP, et changez le premier serveur DNS en 127.0.0.1 localhost). Le second devrait probablement être l'IP de votre DNS actuel.

Ce n'est pas nécessaire pour que le fichier hosts fonctionne. mais cela peut être utile dans votre cas si quelque chose est configuré de façon étrange.

9. adresses locales

Si vous utilisez une entrée de domaine .local sous la forme myhost.local et qu'elle est ignorée, essayez 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 pas son groupe de travail ou son domaine local.

10. Limites de ligne / de comptage

(ajouté à cette réponse pour la rendre visible car elle a été mentionnée à plusieurs reprises)

Le fichier hosts de Windows semble avoir une limite de lignes ou d'hôtes. Si vous avez plus de 150 caractères sur une ligne ou plus de 8 entrées hosts pour une IP, créez une nouvelle ligne.

Par exemple, au lieu de :

1.2.3.4 host1.com host2.com host3.com host4.com host5.com host6.com host7.com host8.com host9.com 

Essayez ça :

1.2.3.4 host1.com host2.com host3.com host4.com host5.com
1.2.3.4 host6.com host7.com host8.com host9.com

22voto

Aaron Points 31

Assurez-vous que vous avez mis l'adresse IP en premier et ensuite le "domaine" comme ceci :

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev

13voto

David Siviour Points 131

Veuillez ajouter la vérification des autorisations de fichiers. J'ai constaté que même si j'avais les droits d'administrateur local sur l'ordinateur et donc sur les hôtes. Ce n'est que lorsque j'ai ajouté les utilisateurs locaux aux permissions du fichier hosts avec Read et Read & Execute et ensuite un ipconfig /flushdns que les hôtes sont devenus actifs.

10voto

Unick Points 201

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

hôtes.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.

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

4voto

Ahmet Kakıcı Points 3045

Je rencontrais le même problème, les entrées du fichier hosts étant ignorées. J'ai essayé tout ce que j'ai pu trouver dans ce fil de discussion et dans d'autres, sans succès. Je me suis dit que j'allais poster ce qui a fonctionné pour moi au cas où quelqu'un d'autre rencontrerait ce problème.

  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 hosts.
  4. Commencez à zéro et ajoutez des entrées.
  5. Assurez-vous que le fichier d'hôtes n'a pas d'extension .txt.

Note : le simple fait d'ouvrir le fichier hosts et de supprimer le contenu, de vérifier qu'il est de 0kb et de le réinsérer n'a pas fonctionné. Je soupçonne un problème de permissions sur le fichier.

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