Cela fait un moment que j'ai des problèmes avec ça et j'ai tout essayé, alors je me suis dit qu'il était enfin temps de demander de l'aide.
Toute modification apportée à /etc/hosts
ne fonctionne tout simplement 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
(cela n'existe pas), il devrait être chargé à partir de 192.168.1.100
.
Si je cingle, 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, cela fonctionne. Mais comme je travaille dans une société d'hébergement WordPress gérée, je suis confronté à de nombreuses situations dans lesquelles je dois modifier mon fichier pour consulter le site Web du client sur notre serveur.
Je ne peux tout simplement pas continuer à redémarrer mon ordinateur. Ce n'est pas productif du tout. Le redémarrage du service réseau ne fonctionne pas, même chose pour la suppression du cache (même le cache DNS interne Chrome).
Est-ce que quelqu'un a une idée ici? Cela se produit avec elementaryOS (basé sur Ubuntu 12.04) et Ubuntu 13.10 (quotidien). Je n'ai encore essayé aucune autre version.
PS: Si cela a de l'importance, j'ai un serveur NGINX qui tourne sur cette machine avec PHP-FPM et MySQL.
Merci d'avance :)
Dans Ubuntu, si vous souhaitez vider le cache DNS, vous devez redémarrer le démon nscd
.
Installez nscd
en utilisant la commande suivante:
Sudo apt-get install nscd
Vider le cache DNS dans Ubuntu À l'aide de la commande suivante:
Sudo service nscd restart
OR
Sudo service dns-clean start
Référence: http://www.upubuntu.com/2012/05/how-to-flush-clear-dns-cache-under.html
Ce qui suit a fonctionné pour moi: ajouter
addn-hosts=/etc/hosts
dans
/etc/NetworkManager/dnsmasq.d/hosts.conf
tuer Dnsmasq et
service NetworkManager restart
Pour moi, la solution a été d’éditer le fichier /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!
La réponse acceptée fonctionne de 12.04 à 13.04 en désactivant dnsmasq
, mais elle a cessé de fonctionner pour moi en 13.10. J'ai trouvé la nouvelle solution suivante pour 13.10.
Éditez votre/etc/default/dnsmasq et changez ENABLED=1
en ENABLED=0
et redémarrez.
De: http://blog.calebthorne.com/2012/08/broken-etchosts-in-ubuntu-1204.html
Une nouvelle "fonctionnalité" dans Ubuntu 12.04 desktop edition consiste à utiliser dnsmasq
en tant que plug-in vers NetworkManager pour le DNS local. Dnsmasq est destiné à accélérer les services DNS et DHCP, mais a un effet secondaire déplorable: dnsmasq
met en cache le DNS local et ignore les modifications apportées à /etc/hosts
. J'apporte souvent des modifications au fichier hosts pendant que je travaille sur des sites Web, donc cette "fonctionnalité" était assez ennuyante.
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 fichier 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
/etc/NetworkManager/dnsmasq.d/hosts.conf
.address=/whatever/1.2.3.4
dedans. Voir la documentation (cherchez --address
). Les caractères génériques sont possibles: address/.whatever./1.2.3.4
.dnsmasq
( bug ).$ service network-manager restart
.Vérifiez les autorisations sur le fichier /etc/hosts
.
Sur mon service cloud, après le clonage d'un serveur, les autorisations sur le fichier hosts ont été modifiées de 644
à 600
afin que le fichier ne puisse pas être lu par Apache (www-data
). J'ai exécuté Sudo chmod 644 hosts
à partir de /etc
et cela a été corrigé.
Le problème a commencé comme:
MongoConnectionException Failed to connect to: localhost:27017: Previous connection attempts failed, server blacklisted.
Je l'ai retrouvé dans la variable serveur de MongoClient pointant vers localhost. Je suis incapable de cingler localhost ou le nom d'hôte.
Editez /etc/nsswitch.conf
, commentez la ligne ci-dessous en ajoutant un # devant la ligne.
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
et ajouter
hosts: files mdns4_minimal [NOTFOUND=return] dns
Fondamentalement, la configuration est réorganisée. Maintenant, le processus de recherche de domaine consultera d'abord le fichier /etc/hosts
, puis consultera DNS. Avec la configuration par défaut, il consulte d'abord DNS avant tout autre service ou fichier approprié.
Pour tester rapidement si cela fonctionne ou non, vous pouvez utiliser
Sudo python -m SimpleHTTPServer 80
créer un simple serveur HTTP pour servir des fichiers à partir d'un répertoire, puis commenter sous la ligne dans le fichier /etc/hosts
127.0.0.1 localhost
127.0.1.1 01hw730983
et ajouter
127.0.0.1 content
ensuite, allez dans un navigateur et tapez content/
, si vous êtes capable de voir la structure de répertoires fonctionner autrement.
Il semble que votre configuration ressemble beaucoup à la mienne. J'ai un ordinateur sous Ubuntu comme serveur de bureau et hôte de développement. Sur cette boîte, je lance les applications Nginx, Apache, Tomcat, Rails et tout ce dont j'ai besoin.
Sur mon Mac, je peux simplement ajouter une entrée d'hôtes et charger le serveur avec le nom dont j'ai besoin, mais d'un client ElementaryOS, cela ne fonctionne pas.
J'ai essayé les correctifs ci-dessus, sans succès.
Ce que j'ai fait était d'exécuter Squid Proxy Server et d'ajouter les noms d'hôte à/etc/hosts sur le serveur. (La modification nécessite un redémarrage du calmar.)
Ensuite, définissez les paramètres de proxy appropriés dans votre navigateur ou dans le panneau de configuration du système d'exploitation.