41 votes

Pourquoi le fichier /etc/hosts ne fonctionne-t-il pas ?

Cela fait un moment que j'ai des problèmes avec ça et j'ai essayé tout ce que je sais, alors je me suis dit qu'il était enfin temps de demander de l'aide.

Toute modification que je fais à /etc/hosts ne fonctionne pas.

Exemple :

julian@ifrit:~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   ifrit
192.168.1.100   dev.julianfernand.es

Dans l'exemple ci-dessus, lorsque j'accède à dev.julianfernand.es (qui n'existe pas), il devrait se charger à partir de 192.168.1.100 .

Si je fais un ping, cela fonctionne très bien. Cependant, lorsque j'accède à dev.julianfernand.es en utilisant Google Chrome ou Firefox, ce n'est pas le cas.

Maintenant, après avoir redémarré plusieurs fois, ça fonctionne. Mais comme je travaille dans une entreprise d'hébergement WordPress géré, je suis confronté à de nombreuses situations où je dois modifier mon fichier pour voir le site Web du client sur notre serveur.

Je ne peux pas continuer à redémarrer mon ordinateur. Ce n'est pas du tout productif. Le redémarrage du service réseau ne fonctionne pas, de même que la suppression du cache (même le cache DNS interne de Chrome).

Quelqu'un a-t-il une idée ? Cela se produit avec elementaryOS (basé sur Ubuntu 12.04) et Ubuntu 13.10 (quotidien). Je n'ai pas encore essayé avec d'autres versions.

PS : à ce sujet, j'ai un serveur NGINX fonctionnant sur cette machine avec PHP-FPM et MySQL.

Merci d'avance :)

15voto

Dan Points 270

Dans Ubuntu, si vous voulez vider le cache DNS, vous devez redémarrer le système. nscd démon.

Installer nscd en utilisant la commande suivante :

sudo apt-get install nscd

Vider le cache DNS dans Ubuntu En utilisant la commande suivante :

sudo service nscd restart

OU

sudo service dns-clean start

Référence : http://www.upubuntu.com/2012/05/how-to-flush-clear-dns-cache-under.html

7voto

jmarceli Points 386

Pour moi, la solution a été de modifier /etc/nsswitch.conf (vous pouvez utiliser la commande sudo vim /etc/nsswitch.conf ). J'ai changé de ligne :

hosts:          files mdns4_minimal [NOTFOUND=return] dns

à :

hosts:          dns files mdns4_minimal [NOTFOUND=return]

et maintenant cela fonctionne comme prévu !

6voto

rusoaie Points 71

Ce qui suit a fonctionné pour moi : ajouter

addn-hosts=/etc/hosts

en

/etc/NetworkManager/dnsmasq.d/hosts.conf

tuer dnsmasq et

service NetworkManager restart

4voto

Tafkadasoh Points 211

La réponse acceptée fonctionne dans 12.04 jusqu'à 13.04 en désactivant dnsmasq mais cela a cessé de fonctionner pour moi dans la version 13.10. J'ai trouvé la nouvelle solution suivante pour 13.10.

Editez votre /etc/default/dnsmasq et changez ENABLED=1 a ENABLED=0 et redémarrer.

3voto

Panther Points 96601

De : http://blog.calebthorne.com/2012/08/broken-etchosts-in-ubuntu-1204.html

Une nouvelle "fonctionnalité" de l'édition de bureau d'Ubuntu 12.04 permet d'utiliser les fonctions suivantes dnsmasq en tant que plugin de NetworkManager pour le DNS local. Dnsmasq est destiné à accélérer les services DNS et DHCP, mais il a un effet secondaire malheureux : dnsmasq met en cache le DNS local et ignore les changements de /etc/hosts . Je modifie fréquemment le fichier hosts lorsque je travaille sur des sites Web. Cette "fonctionnalité" était donc assez ennuyeuse.

La solution consiste à désactiver dnsmasq dans le fichier de configuration de Networkmanager. Ouvrez /etc/NetworkManager/NetworkManager.conf et commentez la ligne :

dns=dnsmasq

Mon NetworkManager.conf contient les éléments suivants :

[main]
plugins=ifupdown,keyfile
# dns=dnsmasq

[ifupdown]
managed=false

Voir aussi https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/993298

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