Comprendre le nom d'hôte et / etc / hosts

12

Dans / etc / hostname, je l'ai myname.

Dans / etc / hosts, j'ai:

127.0.0.1   localhost.localdomain   localhost myname
::1     localhost.localdomain   localhost myname

J'ai une vague compréhension de ce qu'est vraiment un nom d'hôte et de son utilisation.

Ces questions plus précises pourraient m'aider à mieux le comprendre:

  1. Quel est vraiment mon nom d'hôte dans l'exemple ci-dessus? mynameou autre chose? Si je devais la place myname.domain.comdans /etc/hostname, ce serait mon vrai nom d' hôte alors?

  2. Dans l'exemple, la commande hostnameretourne myname, tandis que la commande hostname -frevient localhost.localdomain. J'avais à l'esprit que ce /etc/hostsn'était qu'un mappage entre les noms et les adresses IP. Il semble remplir ici une autre fonction. Qu'est-ce qu'un FQDN et à quoi sert-il? Comment est-il récupéré? Pourquoi localhost.localdomain?

  3. Si je devais la place myname.domain.comdans /etc/hostname, hostname -frenverrait myname.domain.com. Pourquoi?

  4. Pourquoi le fqdn ne se termine-t-il pas par un point dans ces fichiers?

  5. Sont hostname -det dnsmydomainéquivalents?

  6. Dans quel contexte puis-je utiliser mon nom d'hôte ( myname) et quand dois-je utiliser mon fqdn ( localhost.localdomain)?

Pente
la source

Réponses:

9
  1. /etc/hostnamecontient le nom de la machine, tel qu'il est connu des applications qui s'exécutent localement. /etc/hostset les noms associés DNS aux adresses IP. mynamepeut être mappé à n'importe quelle adresse IP à laquelle la machine peut accéder, mais la mapper 127.0.0.1n'est pas esthétique.
  2. Non /etc/hosts, mais /bin/hostnameremplit une autre fonction -f.
  3. Parce que /etc/hostspeut passer outre le bon sens . Modifiez-le avec prudence et ne laissez pas de déchets là-bas après des correctifs temporaires et des expériences.
  4. Les deux styles (⋯ .TLD. et ⋯ .TLD ) sont acceptables. Le premier est sans ambiguïté, tandis que le second est omniprésent.
  5. Je ne sais pas ce que dnsmydomainc'est, mais peu probable. La recherche de quelque chose /etc/hostsn'est pas techniquement «DNS».
  6. N'oubliez pas le point 1. Nom d'hôte - pour les applications qui s'exécutent localement; également pour des protocoles réseau particuliers tels que SMB (samba). FQDN (si ce n'est pas un faux ou un espace réservé comme localhost.localdomain) - pour accéder à la machine de l'extérieur. Le nom de domaine complet doit pouvoir être résolu là où il est utilisé.
Incnis Mrsi
la source
1
Que faire si mon IP est dynamique (DHCP) et change de temps en temps? quelle adresse dois-je utiliser comme mynamedans / etc / hosts?
user156516
3

Je déteste absolument quand quelqu'un me dit de lire le manuel, mais dans ce cas, veuillez consulter la page de manuel pour le nom d'hôte et la plupart sinon toutes vos questions doivent être répondues. Il est beaucoup mieux écrit que je ne pourrais l'expliquer.

Pour vous aider, voici quelques extraits de vos questions: - Votre nom d'hôte est ce que vous voyez dans / etc / hosts. - Le nom de domaine complet renvoyé est basé sur ce que le résolveur renvoie, d'où la raison pour laquelle vous voyez la valeur dans / etc / hosts renvoyée lorsque le résolveur vérifie d'abord le fichier d'hôtes, il effectue ensuite toutes les requêtes DNS nécessaires.

Celui que je ne crois pas est abordé dans la page de manuel du nom d'hôte (basé sur ma relecture de la page de manuel moi-même) est la raison pour laquelle les entrées dans les fichiers ne se terminent pas par un point.

Cette convention est utilisée lors du traitement des enregistrements DNS. Le nom d'hôte et les fichiers hôtes ne sont pas réellement des enregistrements DNS. Si vous configuriez ces entrées dans bind pour qu'elles soient résolues pour les recherches DNS, l'utilisation d'un point peut entrer en jeu (consultez cette bonne ressource: http://www.zytrax.com/books/dns/apa/dot.html ).

Gardez également à l'esprit que toutes ces valeurs ne sont pas diffusées à partir du système. Donc, si vous souhaitez qu'un autre système accède basé sur le FQDN, il est basé sur le fichier d'hôtes sur cet autre système, ou manquant d'entrées d'hôtes basées sur les recherches DNS que le système externe fait sur le FQDN pour lui permettre de résoudre à nouveau le système.

User52458
la source
En relation, à propos du point final dans /etc/hosts: serverfault.com/questions/336056/setting-fqdn-hostname-and-dot
John WH Smith
3

En réponse à

Que faire si mon IP est dynamique (DHCP) et change de temps en temps? quelle adresse dois-je utiliser comme myname dans / etc / hosts?

Permettez-moi de souligner, tout d'abord, que / etc / hosts est une définition statique du mappage nom-adresse pour l'hôte sur lequel il est installé et est UNIQUEMENT utilisé par cet hôte pour convertir le nom en adresse IP.

Donc, il y a 2 points de vue à considérer - l'hôte 'myname' et tout le monde.

Pour cet hôte «myhost», faites référence à l'hôte actuel à l'aide de «localhost» (qui est défini dans / etc / hosts comme 127.0.0.1), ou ajoutez «myname» à la ligne / etc / hosts qui définit localhost afin que «myname 'correspond toujours à, bien, localhost. Ainsi:

127.0.0.1 nom d'hôte local

Peu importe l'adresse IP que l'INTERFACE obtient, vous aurez toujours une adresse qui fonctionne (un bonus supplémentaire est que vous n'avez pas besoin de toucher le matériel pour parler de 'myname' à 'myname').

Maintenant, pour permettre à D'AUTRES hôtes de trouver «myhost» lorsque «myhost» a une adresse IP dynamique, vous devez utiliser DNS et ledit serveur DNS doit gérer les mappages attribués par DHCP. (Eh bien, d'accord, il y a d'autres solutions auxquelles je peux penser, mais tout ce qui me vient à l'esprit appartient à la catégorie «au-delà de l'idiot», à mon humble avis. où il est, mais c'est une question digne d'un flux de questions / réponses complètement différent ici, à mon humble avis)

RustyCar
la source
2

/ etc / hostname et / etc / hosts sont simples, mais pas aussi simples ...

Comment configurer rapidement Debian /etc/hostnameet/etc/hosts

1) Modifiez / etc / hostname .

Il existe 2 façons valides de configurer cela.

Soit le faire:

  • machine, c'est-à-dire un nom simple d'un mot pour ce processeur.
    Par exemple, « joe» peut être le nom de votre machine que vous avez choisi.
    Notez que cela nécessitera un alias dans / etc / hosts, décrit plus en détail ci-dessous.

OU

  • machine.domain.net, c'est-à-dire un nom de domaine complet (FQDN).
    Par exemple, ' joe.xyz.com'.
    (Cela suppose que vous avez un enregistrement d'hôte DNS 'A' pointant de joe.xyz.com vers l'adresse IP de votre joe, c'est-à-dire sur votre machine nommée joe. Normalement, vous configurez cet enregistrement là où vous avez acheté votre nom de domaine. Plus d'informations à ce sujet dans un instant.)

Une fois / etc / hostname défini, l'étape suivante consiste à obtenir les commandes hostname --all-fqdnet dnsdomainnameà fonctionner correctement, dans cet ordre, comme suit:

2) Modifiez / etc / hosts .

Il contient une ligne pour le nom de domaine complet de cet hôte , par exemple 'machine.domain.net', préfixée avec l'adresse IP de cette machine (éventuellement à partir d'un serveur d'adresse IP dynamique) comme ceci:

#   IP           FQDN (CANONICAL_HOSTNAME)   ALIASES
#-------------- --------------------------- ------------------------
192.168.1.14    Joe.xyz.com                 joe
  • Tout d'abord, notez que les majuscules ou les minuscules n'ont pas d'importance ici. Astuce: Cependant, avoir des plafonds nous permet de remarquer d'où viennent les choses dans les prochaines étapes. J'ai donc capitalisé J oe.

  • Notez également que pourhostname que le simple (ie / etc / hostname = 'machine') génère correctement un nom de domaine complet, un alias nommé 'machine' doit être présent dans / etc / hosts. C'est pourquoi l'alias joe est là. (BTW, c'est correct d'avoir cet alias même si vous ne l'utilisez pas.) Sinon, cet alias n'est pas nécessaire, ni utilisé.

  • Notez également que 'domain.net' doit être résoluble, c'est-à-dire qu'il doit exister un enregistrement A pour lui dans DNS. C'est ce qu'on appelle « résolvable » (c'est-à-dire par le résolveur DNS).

3) Installez maintenant ces nouveaux paramètres depuis / etc / hostname et / etc / hosts dans le noyau, en exécutant:

    $ /etc/init.d/hostname.sh       # Or by rebooting

4) Test du nom d'hôte

$ hostname      # Reports the hostname previously read from in /etc/hostname.
joe

OU

$ hostname
joe.xyz.com

Conseils:

  • Notez que ce n'est pas ce que / etc / hostname est actuellement, comme si vous le modifiez à nouveau maintenant, mais plutôt ce qui a été lu précédemment par le script /etc/init.d/hostname.sh, probablement à la suite d'un redémarrage.

  • Notez également que le «j» est en minuscules, donc cela suggère qu'il vient de / etc / hostname, pas / etc / hosts.

5) Testez le nom de domaine complet

$ hostname --all-fqdn   #reports the FQDN(s) matched in /etc/hosts.
Joe.xyz.com             #  It searches /etc/hosts for the joe in /etc/hostname.
                        #  Notice that the 'J' is uppercase.  
                        #     This suggest it came from /etc/hosts.

6) Testez le nom de domaine DNS

$ dnsdomainname         #reports the computed DNS doman name    
xyz.com                 #  (i.e. the right most part of the FQDN; 
                        #    the part to the right of the first, left most, dot)
                        #  This is coming from Joe.xyz.com in /hosts, 
                        #    after 'Joe.' is removed.

Maintenant, cela devrait faciliter la configuration d'un serveur Web et de messagerie.

Vue elliptique
la source