fichier hosts ignoré, comment résoudre le problème?

149

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

Souvent, on décide de changer 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. Cela peut être causé par un certain nombre d’erreurs de type "gotcha" et il peut être frustrant de savoir laquelle.

Face au problème de l’ignorance d’un fichier hôtes par Windows, quel est le protocole de dépannage complet à suivre?


Cette question comporte des doublons sur SO, tel que le fichier HOSTS est ignoré.

Celles-ci ont toutefois tendance à traiter d'un cas spécifique et, une fois l'erreur constatée, le PO est découvert, 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 de disposer d'un protocole général permettant de résoudre tous les problèmes liés aux hôtes et couvrant tous les cas.

Superbest
la source
12
En outre, comme quelqu'un posté ailleurs, n'utilisez pas "nslookup" pour tester ceci car cette commande ignore le fichier hosts. Utilisez plutôt "ping".
LatinSuD
Possible en double de fichier HOSTS ignoré
030

Réponses:

220

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

1. Avez-vous vérifié que cela 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 afin que les anciens enregistrements puissent être utilisés pendant un certain temps. Ouvrez une ligne de commande (Windows + R cmd, Entrée) et tapez:

ipconfig /flushdns

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.exemple.com ou une entrée ipv6 dans vos hôtes pour ipv6.exemple.com):

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

Et voir si elle utilise la bonne adresse IP. Si c'est le cas, votre fichier hosts 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 elle échouera):

nbtstat -R

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

ipconfig /displaydns | more

2. Bases

  • Votre fichier hosts est-il nommé correctement? Ça devrait être hostset pas host, etc.
  • L'extension est-elle correcte? Il ne doit pas avoir d’extension ( hostspas hosts.txt) - faites attention si vous avez configuré Windows pour masquer les extensions connues, vérifiez les propriétés pour vous assurer: Le type de fichier d’hôtes correct apparaît uniquement comme "Fichier".
  • Avez-vous suivi la syntaxe correcte ? Avez-vous accidentellement préfixé les lignes avec un hash ( #) qui indique des commentaires?
  • Vous êtes-vous occupé de toutes les variantes ( www.example.comet example.com- le plus sûr d’ajouter les deux)?

3. espaces blancs

Le format de chaque ligne est IP address, ensuite, un onglet horizontal (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 des images de contrôle Unicode pour indiquer les caractères de contrôle. (Ne pas copier et coller dans votre fichier hosts!)

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 éditeur hexadécimal . Notepad ++ affiche é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 hosts utilisent des tabulations ou des espaces, pas les deux.

Enfin, terminez le fichier avec une ligne vide.

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 le placement du fichier hosts à 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 devrait être:

%SystemRoot%\System32\drivers\etc

5. Autorisations

Parfois, il existe des problèmes avec les autorisations sur le fichier, les attributs de 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 hosts actuel dans ce fichier dans le Bloc-notes.
  3. Enregistrez le nouveau fichier texte et renommez-le hosts.
  4. Copiez ( ne déplacez pas ) le fichier dans votre %SystemRoot%\System32\drivers\etcrépertoire et écrasez l'ancien fichier.

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

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

  1. Accédez à %SystemRoot%\System32\drivers\etcdans l'explorateur Windows.
  2. Si vous ne pouvez pas voir le hostsfichier, assurez-vous de pouvoir voir les fichiers cachés et les fichiers système .
  3. Cliquez avec le bouton droit sur le hostsfichier et sélectionnez Propertiesdans le menu contextuel.
  4. Dans la hosts Propertiesfenêtre, cliquez sur l' Securityonglet.
  5. Examinez la liste de noms dans la Group or user names:boîte. Si %COMPUTERNAME%\Usersest présent, cliquez dessus pour afficher les autorisations.
  6. Si Usersn'est pas présent, ou est présent mais n'a pas la Readpermission, cliquez sur Edit....
  7. Si Usersn'est pas présent, cliquez sur Add..., le type Users, cliquez sur Check Names, puis cliquez sur OK ou appuyez sur Entrée.
  8. Sélectionnez Userset assurez Read & execute-vous que la case est cochée Allow. Cliquez sur OK. Si un Windows Securitymessage d'alerte apparaît, choisissez Yesde continuer.
  9. Cliquez sur OK pour fermer la hosts Propertiesfenêtre.
  10. Montez à la section 1 de cette réponse et suivez les instructions pour vérifier si cela fonctionne maintenant.

6. Encodage

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

7. Proxies

Si vous avez un proxy 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, allez dans Internet Explorer -> Options Internet -> Connexions -> Paramètres réseau. Si tout est vide et que l'option "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 ne souhaitez donc pas le désactiver, vous pouvez ajouter des exceptions en accédant à Internet Explorer -> Options Internet -> Connexions -> Paramètres réseau -> Serveur proxy / avancé. Ajoutez ensuite vos exceptions à la zone de texte Exceptions. Par exemplelocalhost;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, puis remplacez le premier serveur DNS par 127.0.0.1(localhost). La seconde devrait probablement être l'adresse IP de votre DNS actuel.

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 myhost.local et qu'elle est ignorée, veuillez procéder comme suit:

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

même si le www.myhost.local n’existe pas. D'une certaine manière, Windows n'ajoute pas son groupe de travail ou son domaine local.

Superbest
la source
3
MERCI BEAUCOUP DE SUPERBEST! Je pleure presque, tant de nôtres devenant fous pour un SPACE au début d'une entrée vierge entre 2 lignes. Merci Merci Merci Merci Merci Merci !!!!!
1
Un autre piège est que les versions 64 bits de Windows redirigent le dossier System32 pour les applications 32 bits (telles que Notepad ++) afin que, lorsque vous enregistrez, le fichier s'affiche dans le dossier SystemWOW64 au lieu de System32. La meilleure solution consiste simplement à utiliser la version Windows du Bloc-notes, qui est 64 bits. La deuxième solution consiste à vous connecter au partage administratif (\\ votremachinename \ c $ \ Windows \ System32 \ drivers \ etc) pour ouvrir le fichier si vous utilisez un éditeur 32 bits.
Tim Lewis
4
Bon post, mais avec quelques erreurs. 1) "Détecter automatiquement les paramètres" dans IE peut vous amener à utiliser (même inconsciemment) un proxy si votre réseau fournit effectivement une configuration automatique du proxy. 2) La modification de vos serveurs DNS dans les paramètres réseau n’a rien à voir avec le mode, quand / si le hostsfichier est utilisé, et sa modification en 127.0.0.1 est effectivement une erreur, sauf si vous exécutez un serveur DNS sur votre ordinateur. ordinateur.
Massimo
1
# 5 (créer un nouveau fichier et le copier) a fait l'affaire pour moi. Win7 peut être amusant avec des autorisations.
chris
1
J'ai modifié le fichier hosts sous Cygwin à l'aide de vim. Je pense que cela a entraîné l'arrêt du problème de mon fichier hosts. Je devais créer un nouveau fichier et copier le contenu du fichier hosts précédent et le corriger.
Forloop
16

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

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev
Gustaf
la source
6
Je préfère utiliser une seule ligne:127.0.0.1 bo.dev www.bo.dev ftp.bo.dev
Xhynk
1
Attention, le fichier hosts de Windows n'autorise que NEUF OU MOINS d'entrées par ligne! Cela m'a mordu et a mis du temps à comprendre.
Andrew
N'utilisez pas le .devTLD localement en pensant qu'il n'y aura pas de collision. Il s’agit d’un TLD global générique valide appartenant à Google et son utilisation posera de nombreux problèmes. Voir ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts
Patrick Mevzek le
Erreur de recrue, mais cela a fonctionné. Doh! les avait à l'envers nom puis IP
ransems
11

S'il vous plaît ajouter vérification des autorisations de 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 du fichier hosts avec Read and Read & Execute, puis un ipconfig / flushdns, que les hôtes sont devenus actifs.

David Siviour
la source
3
C'était ça! Je suis déconcerté par ce problème depuis des années . J'ai ajouté (machine)\USERSavec lire et lire et exécuter les autorisations et après ipconfig /flushdnscela a fonctionné. Merci beaucoup. Je suis très heureux d'avoir enfin mon fichier hôtes.
Clement Cherlin
7

Dans mes 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 de C: \ Windows \ System32 \ drivers \ etc \ hosts et les utilise à partir de hosts.ics.

Unick
la source
1
Sur support.microsoft.com/en-us/kb/309642/en-us , qui est ancien et peut-être plus précis: "Le fichier Hosts.ics est utilisé par ICS pour stocker des informations sur les clients configurés de manière dynamique. Évitez de modifier Ce fichier empêche toute perte de connectivité ou de données. Le fichier Hosts (sans extension de nom de fichier) est le fichier auquel vous ajoutez des informations sur les clients configurés de manière statique. " Donc, je ne m'attendrais pas à ce que Windows ignore le Hostsfichier simplement parce qu'il Hosts.icsest présent. Quelque chose d'autre pourrait amener Windows à ignorer vos fichiers Hosts, comme peut-être une mauvaise extension (mais cachée).
Arjan
1
Je vois cette information. Mais je ne sais pas pourquoi je suis parvenu à faire fonctionner des hôtes uniquement lorsque j’ai édité hosts.ics. Avant de modifier hosts.ics, j’ai essayé toutes les méthodes de cette rubrique, mais les hôtes ne fonctionnent pas.
Unick
Merci! Tu m'as sauvé la vie. A travaillé sur Windows 10
Xatenev le
3

Je rencontrais le même problème, les entrées du fichier hosts étant ignorées. J'ai tout essayé dans cela et dans beaucoup d'autres discussions sans succès. J'ai pensé publier ce qui a fonctionné pour moi au cas où quelqu'un d'autre l'aurait trouvée.

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

Remarque: ouvrez simplement le fichier hosts et supprimez le contenu, vérifiez qu'il était à 0 Ko et rajoutez-le, cela n'a pas fonctionné. Je soupçonne un problème d'autorisations sur le fichier.

PSA4444
la source
note rapide - lors de la modification de fichiers système (tels que le fichier hosts), il est prudent de créer d'abord une sauvegarde. Pour éviter toute perte de données, envisagez plutôt de renommer le fichier hosts existant, par exemple hosts.bak, puis
procédez
1

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

La sécurité IBM Trusteer Endpoint Rapport peut être à l'origine de 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 diriger vers d'autres sites.

J'ai pris mon nom de la liste des sites de confiance et il ne vérifie plus et ne "corrige" pas le détournement de fichiers de mon hôte.

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

Oiseau sur la main
la source
1

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

Cela peut arriver s'il n'y a qu'une seule entrée dans le fichier et si vous ignorez le texte de commentaire.

knb
la source
1

Un problème oublié dans la discussion ci-dessus concerne les noms non qualifiés (noms qui n'incluent pas de point) dans le fichier hosts. Vos paramètres réseau peuvent alors entrer en jeu et ajouter automatiquement votre propre domaine à la fin d'un domaine non qualifié. Par conséquent, le nom pourrait ne pas être résolu ou, pire encore, être résolu sur une machine complètement différente.

utilisateur287479
la source
0

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

Geln Yang
la source
0

Dans mon cas, le problème était que je copiais un fichier hosts à partir d'un répertoire chiffré et que je remplaçais ainsi etc / hosts. Je devais examiner les propriétés et décocher la case "chiffrer le fichier".

Janos
la source
0

Mon fichier hosts 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 toujours à ce que Windows obtienne leurs adresses IP à partir du fichier hosts. Ce n'est pas. Même après la déconnexion, les adresses sont toujours correctes, mais entre le redémarrage de l'ordinateur et la première connexion à un réseau, le fichier hosts est ignoré.

(Incidemment, les tabulations, les espaces et les retours à la ligne ne sont pas pertinents pour autant que je sache).

Denis Howe
la source