web-dev-qa-db-fra.com

Pourquoi mon nom d'hôte apparaît-il avec l'adresse 127.0.1.1 plutôt que 127.0.0.1 dans / etc / hosts?

Cela peut être un peu une question noobish, mais je jetais un œil à/etc/hosts sur ma nouvelle installation Xubuntu et j'ai vu ceci:

127.0.0.1 localhost
127.0.1.1 myhostname

Sur la plupart des nix que j'ai utilisés, la deuxième ligne est omise, et si je veux ajouter mon nom d'hôte au fichier hosts, je ferais juste ceci:

127.0.0.1 localhost myhostname

Y a-t-il une différence entre ces deux fichiers dans un sens pratique?

217
Tom

Il n'y a pas beaucoup de différence entre les deux; 127/8 (par exemple: 127.0.0.0 => 127.255.255.255) sont tous liés à l'interface de bouclage.

La raison en est documentée dans le manuel Debian dans Ch. 5 Network Setup - 5.1.1. The hostname resolution .

En fin de compte, c'est une solution de contournement de bogue; le rapport d'origine est 16099 .

166
Daniel Pittman

Pour résumer les informations liées:

  • Il est (discutable) utile d'avoir une entrée dans votre /etc/hosts traduire le nom de domaine complet de la machine en son adresse IP permanente.
  • debian-installer, et plus précisément, son composant netcfg, actuellement (jusqu'à mars 2013 au moins) crée cette entrée.
  • Si la machine n'est pas connue pour avoir une adresse IP permanente, l'installateur Debian souhaite toujours qu'elle ait ce type d'entrée.
  • L'adresse 127.0.1.1 utilise interface de bouclage , répondu par votre propre machine, tout comme 127.0.0.1 mais est une entrée distincte dans /etc/hosts qui peut être considéré séparément de 127.0.0.1 si/quand nécessaire.

Thomas Hood explique l'ajout de cette entrée comme suit:

[Ceci] garantira que si le nom d'hôte UNIX est résolu, ce sera toujours son propre nom d'hôte canonique

mais:

À long terme, le nom d'hôte UNIX ne devrait pas du tout être placé dans/etc/hosts.

49
einpoklum

J'étais moi-même curieux, et je n'ai aimé aucune des autres réponses car ils ne semblaient pas répondre à ce que je cherchais au moins.

La réponse: En y repensant doc il semble presque que Thomas déclarait lui donner une autre ip dédiée sur le bouclage lui permet d'être canonique.

Les deux pointent vers votre bouclage. L'utilisation de la 127.0.1.1 suivante est une IP réelle, sur le bouclage, tandis que la 127.0.0.1 est soit le périphérique lui-même, soit une autre IP sur le bouclage. Les deux se retrouvent sur le même sous-réseau, représentant le bouclage, mais sont séparés par ip. Ils sont équivalents en termes de DNS, mais séparés en raison de l'IP dédié.

Le fait est que vous pouvez avoir toutes vos entrées sur une seule ligne comme celle-ci

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

Si votre nom d'hôte est local, ce qui signifie qu'aucune entrée DNS Internet globale n'est mappée sur une adresse IP Internet réelle, alors dans ce cas, Thomas disait que vous BESOIN DE ont la 2ème ligne d'entrée, comme celle-ci pour la dédier là (au canonique).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname
11
Brian Thomas

J'ai lu plusieurs réponses et je suis franchement un peu confus.

J'ai d'abord essayé de comprendre ce qu'est un nom d'hôte canonique ici .

Ce que je peux dire, c'est que @cmroanirgo a raison de dire que sur mon ordinateur portable Ubuntu, en invoquant

hostname --fqdn 

avec /etc/hosts configuré comme ceci

127.0.0.1   localhost 
127.0.1.1   laptop

renvoie laptop, tandis que changer le fichier comme suit

127.0.0.1   localhost laptop

renvoie localhost.

Quels impacts cela peut avoir, je n'en ai aucune idée, sauf le fait que si vous avez un logiciel qui se lie au nom d'hôte, et que vous devez en parler en interne à votre machine, ne vous attendez pas à pouvoir utiliser le nom d'hôte "localhost" pour faire le travail, dans cette configuration, car ils finissent par résoudre deux adresses distinctes distinctes.

2
Riccardo Manfrin