/ etc / hosts modification ne fonctionne pas correctement. Que faire?

10

J'ai ajouté ces lignes au fichier hosts:

127.0.0.1 localhost adobe.com
127.0.0.1 adobe.com

Cela fonctionne parfaitement sur les fenêtres. Mais dans Ubuntu 11.10 lorsque j'essaie d'y accéder en utilisant Firefox, le site Web s'ouvre.

Google Chrome prend en charge la configuration / etc / hosts. Google Chrome affiche:

"Cela fonctionne! Il s'agit de la page Web par défaut de ce serveur. Le logiciel du serveur Web est en cours d'exécution mais aucun contenu n'a encore été ajouté."

Apprenti curieux
la source

Réponses:

10

Je peux confirmer votre problème qu'il semble affecter, entre Chrome et Firefox, uniquement Firefox. Il s'agit d'une réponse pour les utilisateurs qui sont affectés par le même problème et s'ils sont affectés par les deux / tous les navigateurs. Suivez ces étapes pour que cela fonctionne correctement. En supposant que vous avez déjà modifié le /etc/hostsfichier auquel je recommande les 2 façons suivantes de modifier le fichier:

  • Gedit - gksudo gedit /etc/hosts(Vous avez maintenant un moyen convivial de modifier le fichier avec l'interface graphique. Gksu qui fournit gksudo est abandonné dans les dépôts officiels 18.04 et ultérieurs.)
  • nano - sudo nano /etc/hosts(Vous avez maintenant une façon conviviale de modifier le fichier.)

Et vous avez par exemple:

127.0.0.1 localhost adobe.com

ou

127.0.0.1 localhost
127.0.0.1 adobe.com

(Les deux sont la même chose.)

Vous testez d'abord cela pour voir s'il fonctionne correctement depuis le terminal. Tapez ping adobe.comet il devrait répondre de l'adresse IP qui lui est affectée. Dans ce cas, il devrait répondre avec 127.0.0.1. Cela signifie que c'est OK.

Ensuite, nous continuons avec les tests du navigateur. Vous avez testé Chrome et cela a fonctionné. Vous avez changé /etc/hostsentre avoir et ne pas avoir l'entrée pour adobe.com et cela a fonctionné chaque fois que vous l'avez changé. Mais ensuite, vous êtes allé avec Firefox, cela a peut-être fonctionné la première fois, mais après avoir changé de hostsfichier d'avant en arrière, il a cessé de fonctionner. Cela signifie qu'il s'agit d'un problème de cache ou d'un problème de résolution du nom correct.

Dans le cas de Firefox et de la résolution du nom, Firefox ajoute le préfixe www au site Web d'adobe pour qu'il ressemble à ceci "www.adobe.com" mais sur Chrome il ressemble à ceci "adobe.com". Ils pointent tous les deux vers le même endroit et le préfixe www est juste là pour vous dire que l'endroit que vous visitez est un service Web. Mais dans le cas de votre problème, vous devrez l'ajouter au hostsfichier, donc lorsque Firefox ajoute le préfixe www, cela fonctionne. Donc, cela ressemblerait à ceci:

127.0.0.1 localhost
127.0.0.1 adobe.com www.adobe.com

OU tout de même

127.0.0.1 localhost adobe.com www.adobe.com

REMARQUE: N'oubliez pas que vous DEVEZ appuyer sur F5pour actualiser l'onglet site / Firefox ou fermer l'onglet et l'ouvrir à nouveau pour tester. D'une manière ou d'une autre, appuyer Entercomme un fou ne suffira pas.

Cela devrait résoudre le problème pour certains utilisateurs, mais en supposant que jusqu'à présent vous n'avez toujours pas résolu le problème, nous pouvons tester ce que cela pourrait être.

Nous avons obtenu ici quelques niveaux de cache pour vérifier ensuite. Vous avez votre cache de programme, dans ce cas Firefox, puis vous avez votre cache système, dans ce cas Ubuntu, et puis vous avez votre cache matériel, dans ce cas votre routeur.

Pour ce que je sais, la version Ubuntu Desktop n'a pas de service de cache DNS installé par défaut. Le plus connu est nscd et si vous l'aviez installé, un simple /etc/init.d/nscd restartsuffira. Mais pour la plupart des gens, ils ne l'auront pas installé, nous pouvons donc annuler la faute du système Ubuntu.

Cela laisse le routeur et le navigateur Web. Dans le cas du routeur, vous devrez le configurer pour arrêter le cache DNS ou le reconfigurer pour résoudre ce problème. Cela dépend totalement du modèle de routeur, du fabricant, etc. Tous les routeurs ne font pas de cache DNS, mais certains le font et vous devrez voir dans la configuration de celui-ci, s'il a cette option et si l'option est activée. Mais supposons que vous ne disposiez pas d'un routeur compatible avec la mise en cache DNS.

Cela quitte le navigateur.

Pour savoir si Firefox est défectueux avec le cache DNS, vous pouvez installer un module complémentaire pour vérifier le cache DNS dans Firefox. celui que je recommande est le cache DNS .

entrez la description de l'image ici

Après avoir redémarré Firefox, vous devriez voir un rouage en bas (similaire au rouage Ubuntu dans le coin supérieur droit). Vous pouvez faire un clic gauche ou droit sur le rouage et vous devriez voir des options comme Activer / Désactiver DNS et le vider. Cela vous aidera dans le cas où le problème est le cache DNS de Firefox. Joue avec.

Je pense que j'ai toutes les façons de résoudre ce problème. Si j'ai raté quelque chose, faites-le moi savoir.

Luis Alvarado
la source
Si Firefox ne respecte pas le hostsfichier de la machine locale (c'est-à-dire si le problème persiste même après l' wwwajout du domaine avec le sous-domaine et même après l'actualisation de la page), je recommande de signaler cela comme un bogue. (Je ne sais pas ce que ce serait un bug dans , puisque Firefox utilise vraisemblablement les installations de résolution DNS du système d'exploitation, qui font , ou qu'ils sont censés, respecter. Mais vous pouvez déclarer contre firefoxdans Ubuntu et autres informations de dépannage pourrait probablement recibler à partir de là.)
Eliah Kagan
@EliahKagan Cela dépend aussi de l'endroit et de la façon dont l'hébergement / le domaine est. Certains sites offrent la possibilité d'activer l'utilisation du sous-domaine www et certains ne l'ont pas préconfiguré, donc quand on a essayé d'aller sur www.eliah.com cela ne fonctionne pas, mais eliah.com le fait.
Luis Alvarado
Oui bien sûr. Je ne dis pas que cela www.foo.netdevrait fonctionner simplement parce que ça foo.netmarche. Au lieu de cela, si foo.netet www.foo.netsont tous deux définis sur 127.0.0.1in /etc/hosts, en tapant foo.netdans la barre d'adresse d'un navigateur Web et en appuyant sur Entrée, le navigateur tentera d'ouvrir une connexion 127.0.0.1:80. Si ce n'est pas le cas, il y a un bug quelque part.
Eliah Kagan
@EliahKagan - Ah! Oui oui biensûr. Dans ce cas, si cela ne fonctionne pas, l'ordinateur est possédé par un démon. Il nous faudrait soit un exorciste et beaucoup d'eau bénite, soit un meilleur diagnostic du problème.
Luis Alvarado
Exorciste + eau bénite et meilleur diagnostic semble être le cours le plus prudent. :)
Eliah Kagan
7

Je sais que ce fil a un an, mais je suis tombé dessus en cherchant les réponses au même problème. J'ai enfin trouvé une solution! Il s'avère que le /etc/hostsfichier est complètement contourné par DNS. Pour changer cela, vous devez modifier le /etc/nsswitch.confet inclure filessous hosts. Exemple ci-dessous:

passwd:         compat
group:          compat
shadow:         compat

hosts:          dns files myhostname <-- this line here.
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Cela garantira que le /etc/hostsfichier est inclus dans la vérification de la résolution de nom. Il vérifiera d'abord le DNS puis le hostsfichier. Je suis sûr qu'OP n'a plus besoin de ces informations, mais c'est toujours bon pour quiconque cherche des réponses à ce problème.

Vous devez également redémarrer pour que cela prenne effet

Sam Chonburi
la source
J'ai "fichiers mdns4_minimal [NOTFOUND = return] dns mdns4" là-bas sur Ubuntu 12.04 mais / etc / hosts ne fonctionne toujours pas ... on dirait que je rencontre un problème différent.
Shnatsel
Pouvez-vous coller le code complet?
Sam Chonburi
Voici le fichier de configuration complet: pastebin.com/hDBGrrwn Je suppose que c'est la valeur par défaut sur Ubuntu 12.04
Shnatsel
Tout semble correct. Qu'est-ce que tu essaies de faire?
Sam Chonburi du
Je n'ai pas eu: qu'ai-je à ajouter dans cette ligne? /etc/hosts? hosts? Ou quoi?
Hi-Angel
2

Je pense qu'il etc/hostsest utilisé à un niveau beaucoup plus amoureux dans la pile des logiciels de mise en réseau que le navigateur lui-même. C'est-à-dire que les changements dans ce fichier devraient affecter n'importe quel navigateur.

Ce que vous voyez peut être le résultat de la mise en cache des entrées DNS par Firefox - c'est-à-dire que vous avez ouvert le site Web dans Firefox, Firefox se souvient de l'adresse IP correspondant au domaine adobe.com, vous avez modifié /etc/hostset rechargé la page - Firefox n'émet pas de nouvelle requête DNS et utilise à la place les données mises en cache. Ensuite, vous ouvrez Chrome, il crée une nouvelle requête DNS et utilise tout ce que vous avez entré /etc/hostscomme adresse IP pour adobe.com

Le redémarrage de Firefox devrait résoudre le problème.

Sergey
la source
2

Toutes les réponses sont excellentes, mais le moyen le plus court de le corriger est:

après avoir modifié / etc / hosts (et éventuellement redémarré Firefox), rechargez l'onglet problématique avec Ctrl+Shift+R. Il contournera tout type de cache que Firefox pourrait avoir.

Luka Ramishvili
la source
1

Mon problème était que j'avais plusieurs entrées pour le même nom de domaine. Le système n'a vu que la première occurrence.

127.0.0.1 domain1.com domain2.com domain3.com # <-- WENT UNNOTICED
# .
# .
192.168.1.21 domain1.com # <-- DOESN'T WORK
Kaushik Sv
la source
0

Pourriez-vous essayer:

  1. Modifiez le fichier / etc / hosts.
  2. Ajouter les lignes suivantes

     # /etc/hosts
     127.0.0.1  localhost
     127.0.1.1  myhost01
     127.0.1.2  myhost02
    
OleksDovz
la source
0

dans Ubuntu 14.04, changer le fichier / etc / hosts pour n'avoir qu'un seul hôte par ligne fonctionnait pour moi, j'ai eu du mal pendant des heures à travailler avec un hôte hôte IP hôte, puis changé en hôte IP sur chaque ligne et cela a fonctionné>. <

Michael
la source
0

J'ai eu ce même problème sur différentes versions d'Ubuntu. Le dernier a levé la tête laide les 17.04 et 16.04. J'ai trouvé que je devais formater le fichier hosts comme ceci:

127.0.0.1 localhost

127.0.0.1 www.facebook.com facebook.com

c'est-à-dire que vous devez mettre l'url à la fois le www et puis sans. Je ne sais pas pourquoi cela fonctionne. Enregistrez simplement le fichier, puis envoyez une requête ping à l'URL comme dans:

ping www.facebook.com

et il devrait se résoudre à l'adresse de bouclage ou à toute autre adresse que vous souhaitez.eg:

80.82.xxx.xxx www.example.com example.com

A travaillé pour moi.

Jules
la source