273 votes

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 ?

C'est peut-être une question un peu absurde, mais j'ai jeté un coup d'œ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 'nixes 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 fais simplement ceci :

127.0.0.1 localhost myhostname

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

0 votes

Je me demande si je peux simplement supprimer la deuxième ligne ou si un processus dans debian/ubuntu va régénérer la ligne et la rajouter ?

206voto

Daniel Pittman Points 5632

Il n'y a pas une grande différence entre les deux ; 127/8 (ex : 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 la section Ch. 5 Configuration du réseau - 5.1.1. La résolution des noms d'hôtes .

En fin de compte, il s'agit d'une solution de contournement de bogue ; le rapport original est 316099 .

10 votes

La raison réelle : "Associer le nom d'hôte du système à ce dernier a eu l'effet non désiré de faire de 'localhost.localdomain' le nom d'hôte canonique associé au nom d'hôte du système. C'est-à-dire que 'hostname --fqdn' renvoie 'localhost.localdomain'."

1 votes

En fait, je suis remonté jusqu'à ce document lists.debian.org/debian-boot/2005/06/msg00938.html et il apparaît que c'est parce que Thomas ressentait le besoin d'utiliser 1.1 au lieu de 0.1, alors qu'ils sont équivalents, corrigez-moi si je me trompe, mais cela signifie que cette réponse n'est vraiment qu'un fil d'Ariane ?

1 votes

@BrianThomas ce message suggère pourquoi ils ne sont pas équivalents. Ils voulaient localhost et myhostname doivent être distincts - sinon, l'un serait un alias de l'autre. Notez que cela ne fonctionne pas en IPv6 où il n'y a qu'une seule adresse de bouclage. Cela peut être évité en utilisant un module NSS comme mentionné dans le fil de discussion, parce qu'il peut être plus flexible que /etc/hosts et retourner des noms canoniques différents bien qu'ils aient la même adresse IP. Je le sais parce que mon système est configuré en utilisant un tel module NSS .

59voto

einpoklum Points 1583

Pour résumer les informations liées :

  • Il est (discutablement) utile d'avoir une entrée dans votre fichier /etc/hosts en traduisant le nom de domaine entièrement qualifié de la machine en son adresse IP permanente.
  • debian-installer et, plus précisément, son netcfg actuellement (jusqu'en 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 veut quand même qu'elle ait ce type d'entrée.
  • L'adresse 127.0.1.1 utilise le 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 cela est nécessaire.

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

[Cela permet de s'assurer que si le nom d'hôte UNIX es résolu alors il sera 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.

3 votes

... et donc... ? dois-je utiliser 127.0.0.1 pour mon fdqn ? ou 127.0.1.1 ? ou l'ip statique du lan ?

1 votes

@realtebo : 1. C'est utile, et donc c'est ajouté par l'installateur. 2. Il n'y a pas de "doit" ici ; et c'est seulement pertinent lorsque votre FQDN n'a pas d'adresse permanente.

0 votes

@einpoklum Sur ubuntu 20, il semble qu'il ajoute automatiquement cette entrée dans /etc/hosts au redémarrage, même si mon nom d'hôte y figure déjà avec son adresse IP réelle, et cela perturbe nos services (car ils écoutent sur la mauvaise interface). Existe-t-il un moyen d'empêcher ubuntu de s'amuser avec /etc/hosts au redémarrage ?

20voto

Brian Thomas Points 358

J'étais moi-même curieux, et je n'ai pas aimé les autres réponses parce qu'elles ne semblaient pas répondre à ce que je cherchais, au moins.

La réponse : En regardant en arrière doc il semble presque que Thomas ait déclaré que "lui donner une autre ip dédiée sur le loopback lui permet d'être canonique".

Les deux sites pointe vers votre boucle. En utilisant ce qui suit 127.0.1.1 est une adresse IP réelle, sur le loopback, alors que 127.0.0.1 est soit le périphérique lui-même, soit une autre IP sur la boucle. Les deux se retrouvent sur le même sous-réseau, représentant la boucle, mais sont séparés par une IP. Ils sont équivalents du point de vue du DNS, mais séparés par des adresses IP dédiées.

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

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

Si votre nom d'hôte est local, c'est-à-dire qu'il n'a pas d'entrée DNS Internet globale mappée à une adresse IP Internet réelle, alors dans ce cas, Thomas disait que vous deviez BESOIN avoir la 2ème ligne d'entrée, comme ceci pour le dédier là (au canonique).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname

0 votes

En toute honnêteté, après que j'ai finalement composé ça d'une manière qui avait du sens pour moi, je vois que c'est à peu près ce qu'einpoklum essayait d'expliquer, ça ressemble à quelque chose avec du recul.

2 votes

OK vote négatif, je ne sais pas trop pourquoi. Je crois toujours que CETTE réponse est la MEILLEURE, sinon je ne l'aurais pas mise, après avoir atterri ici. La réponse originale a aidé, mais n'a pas saisi tous les détails. Je choisirais celle-ci.

6voto

Riccardo Manfrin Points 141

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

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

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

hostname --fqdn 

avec /etc/hosts configuré comme ceci

127.0.0.1   localhost 
127.0.1.1   laptop

収益 laptop alors que le fichier est modifié comme suit

127.0.0.1   localhost laptop

収益 localhost .

Je n'ai aucune idée de l'impact que cela peut avoir, si ce n'est que si vous avez un logiciel qui se lie au nom d'hôte, et que vous devez lui parler en interne sur votre machine, ne vous attendez pas à pouvoir utiliser le nom d'hôte "localhost" pour faire le travail, dans cette configuration, puisqu'ils finissent par résoudre deux adresses distinctes.

2 votes

Un exemple d'implication : les mises à jour non surveillées utilisent socket.getfqdn() (en Python) pour l'objet du courrier. Je veux que le nom d'hôte UNIX soit là pour distinguer les différentes machines (pas localhost), donc la variante avec 127.0.1.1 me semble correcte ou du moins meilleure.

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