4 votes

Localhost comme confusion de nom d'hôte

J'ai une compréhension de base sur le nom d'hôte et le FQDN. Maintenant je suis confus, est-ce que je dois vraiment spécifier un nom pour mon nom d'hôte? Par exemple:

Nom d'hôte: somename
Domaine: mydomain.com
FQDN: somename.mydomain.com

Maintenant, je vois quelque chose qui indique que le nom d'hôte est localhost. Quelle est la différence et l'impact de cela? Donc, si mon nom d'hôte est localhost, mon FQDN serait localhost.mydomain.com, n'est-ce pas?

2voto

porto alet Points 315

Localhost est un "nom spécial" qui pointe vers l'adresse IP 127.0.0.1 censée exister sur tout ordinateur capable d'utiliser Internet, et se réfère à la machine elle-même. (Toute adresse IP commençant par 127.x.x.x se réfère à la machine locale).

localhost n'est pas la même chose que localhost.mydomain.com.

Le fichier /etc/hostname indique le nom que votre ordinateur pense être le sien. Dans Debian, il semble lier 127.0.1.1 à ce nom dans le fichier /etc/hosts. [Vous pourriez probablement le définir sur une adresse IP "valide" si vous en avez une attribuée statiquement]

Idéalement, vous ne devriez pas utiliser "localhost" comme votre nom d'hôte car cela pourrait (en théorie, je ne peux penser à aucun exemple car je ne l'ai pas fait) causer des problèmes avec certains programmes.

1voto

Dan Ballard Points 21

"localhost" est le "nom" de l'interface de bouclage, qui a toujours l'adresse IP réservée 127.0.0.1, et typiquement le nom de dispositif "lo" ou "lo0"

D'accord, je crois avoir compris maintenant. Mais pourquoi la commande hostname -f me donne localhost alors?

si vous ne donnez pas de nom à votre hôte, le nom d'hôte par défaut est localhost, car les systèmes sans nom ne sont pas considérés comme étant "prêts pour le réseau/internet"

si vous donnez un nom à votre hôte, le nom d'hôte doit résoudre vers l'adresse IP de l'hôte. selon la distribution de Linux que vous utilisez, il existe différents fichiers de configuration pour définir ceci. pour voir cela en action, à partir d'une machine nommée (c'est-à-dire un hôte dont le nom d'hôte n'est pas "localhost"), exécutez ceci:

ping localhost
ping $hostname

vous devriez voir deux adresses IP différentes revenir, 127.0.0.1 et l'adresse IP de votre machine... sinon vérifiez les fichiers de configuration, relancez les scripts d'interface/réseau, ou redémarrez simplement après avoir apporté des modifications

Donc, si localhost est mon nom d'hôte, mon FQDN serait localhost.mydomain.com, n'est-ce pas?

non, localhost n'est pas utilisé pour se connecter en dehors de la machine, donc il n'y a pas de véritable "fqdn" pour localhost (bien que j'ai vu des installations par défaut à localhost.localdomain, mais ce n'est pas réel sur internet, donc pas "entièrement qualifié" à mon avis).

"localhost", ou lo, est un pseudo dispositif qui n'existe que localement et est pertinent sur une machine locale. la raison de son existence est de parcourir la pile localement... par exemple, du code python qui se connecte à une base de données s'exécutant sur "localhost"

0voto

Laszlo Valko Points 690

L'impact est que vous entrez soit localhost dans votre fichier de zone DNS en tant qu'adresse IP de cette machine, soit vous l'entrez comme 127.0.0.1. Peu importe ce que vous choisissez, certaines choses ne fonctionneront pas correctement.

Si vous l'entrez comme 127.0.0.1 (ceci est la chose recommandée à faire), alors vous ne pourrez pas accéder à cette machine nommée localhost depuis d'autres machines. Il serait donc pratique d'utiliser un nom différent...

Si vous l'entrez en tant qu'adresse IP de cette machine, alors vous aurez un désaccord sur les autres machines entre les résultats de la résolution de nom effectuée via les fichiers (/etc/hosts) et le service DNS, car chaque autre machine aura une ligne localhost dans le fichier /etc/hosts avec l'adresse 127.0.0.1, et le service DNS contiendra une adresse différente.

0voto

Giacomo1968 Points 48326

localhost est une boucle de retour vers votre machine locale. Vous n'avez pas besoin de le nommer localhost car il devrait être configuré comme tel dès le départ. Lorsque vous installez Linux, ou tout autre OS, sur n'importe quelle machine, sans rien faire de particulier, il y aura toujours un localhost dans votre configuration réseau.

En d'autres termes, le Mac Mini sur lequel je tape répond à localhost. Cela signifie que c'est ma machine et ma machine locale. Si vous étiez sur votre propre machine, localhost serait votre machine locale.

hostname est simplement le surnom de votre machine qui peut ou ne peut pas être utilisé comme référence pour d'autres services. Dans de nombreux cas, vous pouvez substituer hostname.local (avec hostname étant votre nom d'hôte réel) pour avoir une autre manière d'établir une boucle réseau locale vers votre machine. Cette combinaison de hostname et .local est considérée comme un nom de domaine entièrement qualifié (FQDN).

Par exemple, je bidouille souvent avec les configurations Apache, et il est avantageux pour moi de configurer des configurations distinctes pour localhost ou hostname.local si j'utilise NameVirtualHost dans Apache.

Maintenant, si vous souhaitez dépasser votre .local, cela relève du domaine de la mise en place d'un véritable domaine connecté au monde extérieur. Ce qui est une toute autre discussion.

MODIFICATION : Selon vos commentaires ci-dessous, il semble que la machine en question ait localhost comme nom d'hôte. Cela signifie que vous pouvez techniquement accéder à localhost.local, ce qui n'est pas tout à fait faux, mais est très déroutant. Pour changer le nom d'hôte pour quelque chose de nouveau, faites ce qui suit. Je supposerai que le nouvel hôte devrait s'appeler coolnewhost

Cela changera temporairement votre nom d'hôte en coolnewhost :

sudo hostname coolnewhost

Pour le changer de manière permanente, éditez le fichier (j'aime utiliser nano mais utilisez ce que vous préférez) :

sudo nano /etc/hostname

Ensuite, modifiez le nom d'hôte dans ce fichier pour le faire lire coolnewhost.

Une autre option est d'utiliser sysctl pour modifier le nom d'hôte dans le noyau :

sudo sysctl kernel.hostname=coolnewhost

Et vous devriez être relativement bon. Mais je vous conseille également de vérifier votre fichier /etc/hosts pour voir si l'ancien localhost est configuré de manière étrange :

sudo nano /etc/hosts

Il ne devrait y avoir qu'une seule ligne qui dise :

127.0.0.1 localhost

S'il y a quoi que ce soit d'autre dans ce fichier QUI NE correspond PAS à cette ligne, vous devez le modifier, le commenter ou le supprimer.

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