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 :)

2voto

Pall Arpad Points 121

C'est bête mais le cache du navigateur est le 'coupable' dans mon cas = cela devrait être évident pour un développeur :(

Une autre chose stupide (évidente) que j'ai manqué, les navigateurs (Chrome, Mozilla) effectuent une recherche google (ou moteur de recherche) directement à partir de la barre d'adresse, donc au lieu de résoudre l'adresse que vous avez donné ils recherchent ce mot sur internet !

Solución:

  • Une fois que le fichier /etc/hosts est édité, faites un ping sur l'adresse choisie ! Si la commande ping résout l'adresse IP que vous avez donnée, le fichier 'hosts' fonctionne !

  • Videz le cache de votre navigateur (les navigateurs mettent en cache les résolutions DNS pendant un certain temps (TTL)).

  • Désactiver le moteur de recherche par défaut du navigateur que vous utilisez

1voto

Bogan Points 29

Simple et actualisé

  1. Créer /etc/NetworkManager/dnsmasq.d/hosts.conf .
  2. Mettez des lignes comme address=/whatever/1.2.3.4 en elle. Voir les docs (cherchez --address ). Les caractères génériques sont possibles : address/.whatever./1.2.3.4 .
  3. Tuer dnsmasq ( bogue ).
  4. Redémarrez-le : $ service network-manager restart .

1voto

bot Points 11

Modifier /etc/nsswitch.conf commentez la ligne ci-dessous en ajoutant # 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 qui est /etc/hosts et ensuite il consultera le DNS. Avec la configuration par défaut, il consulte d'abord le DNS avant tout autre service ou fichier approprié.

Pour tester rapidement si cela fonctionne ou pas, vous pouvez utiliser

sudo python -m SimpleHTTPServer 80

pour créer un simple Serveur HTTP pour servir les fichiers du répertoire et ensuite commenter la ligne ci-dessous dans /etc/hosts Datei

127.0.0.1      localhost
127.0.1.1      01hw730983

et ajouter

127.0.0.1       content

puis allez dans un navigateur et tapez content/ Si vous êtes capable de voir la structure du répertoire, c'est qu'il fonctionne, sinon il ne fonctionne pas.

0voto

Jim O'Connell Points 11

On dirait que votre installation ressemble beaucoup à la mienne. J'ai une boîte fonctionnant sous Ubuntu comme serveur de bureau et hôte de développement. Sur cette boîte, j'exécute Nginx, Apache, Tomcat, des applications Rails et tout ce dont j'ai besoin.

Depuis mon Mac, je peux simplement ajouter une entrée hosts et charger le serveur avec le nom dont j'ai besoin, mais depuis un client ElementaryOS, cela ne fonctionne pas.

J'ai essayé les solutions ci-dessus, sans succès.

Ce que j'ai fait, c'est d'exécuter Squid Proxy Server et d'ajouter les noms d'hôtes à /etc/hosts sur le serveur. (La modification nécessite un redémarrage de Squid).

Ensuite, définissez les paramètres appropriés du proxy dans votre navigateur ou dans le panneau de configuration de votre système d'exploitation.

0voto

user228414 Points 1

Vérifiez les permissions sur /etc/hosts fichier.

Sur mon service en nuage, après le clonage d'un serveur, les permissions sur le fichier hosts sont passées de 644 a 600 donc le fichier n'a pas pu être lu par apache ( www-data ) Je suppose. J'ai couru sudo chmod 644 hosts de /etc et ça a réglé le problème.

Le problème a commencé comme suit :

MongoConnectionException Failed to connect to: localhost:27017: Previous connection attempts failed, server blacklisted. 

J'ai trouvé que la variable serveur de MongoClient pointait vers localhost. Je n'ai pas réussi à faire un ping sur localhost ou sur le nom d'hôte.

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