Doit-on utiliser le nom de domaine complet dans / etc / hostname au lieu de hostname?

10

Comme je l'ai lu dans la page de manuel, il est recommandé de mettre le nom d'hôte (sans nom de domaine) /etc/hostname. Par exemple, host au lieu de host.domainsub.domaintld. Mais, comme je sais, certains logiciels repose sur la mise FQDNen /etc/hostname.

Que faut-il spécifier /etc/hostname sur les machines Debian / Ubuntu?

Si ce n'est pas le FQDN, où le FQDN doit-il être spécifié à la place?

Je sais, la question est un peu ancienne, mais je n'ai pas trouvé de réponse claire. Certaines personnes disent le nom d'hôte, d'autres - FQDN. Merci.

Bulat M.
la source
1
Où trouvez-vous des gens qui disent que vous avez mis le FQDN dans le fichier / etc / hostname? Ce fichier est uniquement pour le nom d'hôte du système.
Terrance
Lors de la lecture de documents à ce sujet sur Internet se sont rencontrés quelque part. Et où doit-on spécifier son nom de domaine complet?
Bulat M.
@Terrance, en fait, je veux obtenir des réponses de personnes expérimentées dans le domaine afin qu'elles montrent comment le faire "bien" dès le début. Écrivez comme réponse. Et que faire dans les distributions qui n'ont pas / etc / hostname?
Bulat M.

Réponses:

6

Dans le fichier / etc / hostname, vous utilisez uniquement le nom d'hôte. Le nom de domaine complet sur lequel vous pouvez définir: / etc / hosts qui pourrait ressembler à:

127.0.1.1        thishost.mydomain.org    thishost

Selon le manuel du fichier hosts.

http://man7.org/linux/man-pages/man5/hosts.5.html

Adoniste
la source
1
CORRECTIF: Merci, mais ce serait de connaître les avantages et les inconvénients de spécifier / ne pas spécifier le nom de domaine complet dans / etc / hostname. Je connais votre solution: c'est un talon pour les programmes qui veulent que le nom de domaine complet soit résolu pour que quelque chose (peu importe à quelle adresse) fonctionne.
Bulat M.
11

Réponse révisée:

L'hôte lui-même ne gère pas le FQDN réel. Cela est géré par le DNS . Le nom de domaine complet (FQDN) est géré par DNS en traduisant les noms en adresses IP. En utilisant le /etc/hostsfichier, vous remplacez essentiellement le serveur DNS. L'ordinateur regarde d'abord le /etc/hostsfichier pour voir si une entrée est définie pour un nom d'hôte à l'adresse IP. Les entrées du sont /etc/hostsles suivantes:

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

Ces entrées ne sont pas spécifiques à la distribution. Tous les OS utilisent le même format pour ces lignes. Juste l'emplacement du hostsfichier change. Linux, il se trouve généralement dans le /etc/dossier, tandis que dans Windows, il se trouve généralement dans le C:\Windows\System32\drivers\etc\dossier.

En rompant cette ligne, vous pouvez voir que j'affecte les deux terrance-ubuntu.local, qui est mon nom de domaine complet lui-même pour remplacer le DNS afin que les applications sachent de ne pas quitter mon ordinateur, et terrance-ubuntu, qui est le nom d'hôte, encore une fois afin que les applications sachent ne pas quitter mon ordinateur ou 127.0.0.1 ( localhost ). L'attribution de mon nom d'hôte à mon système 127.0.1.1n'a aucun effet sur les autres ordinateurs qui trouvent mon hôte sur le réseau. Si DNS fonctionne correctement, ils verront mon nom d'hôte comme 10.0.0.100. La raison de l'utilisation 127.0.1.1est que mes applications trouvent mon système plus rapidement car elles sauront que mon système n'est pas ailleurs sur mon réseau. Mon nom d'hôte réel .localétant mon FQDN, le.local est en fait mon domaine que j'ai configuré via mon routeur, qui est également un autre serveur DNS sur mon réseau.

Maintenant, disons que les services DNS sur le réseau local n'attribuent pas de noms d'hôte ou de noms de domaine complets aux adresses IP, mais vous savez pourtant quelle est l'adresse IP de l'hôte sur le réseau local. Vous devez ensuite affecter cet hôte dans votre /etc/hostsfichier afin que vous n'ayez pas besoin de taper l'adresse IP de l'hôte chaque fois que vous souhaitez y accéder. L'hôte peut être un serveur d'outils, une imprimante ou un autre système connecté au réseau. Ajoutez l'entrée comme vous le feriez normalement au /etc/hostsfichier.

Je vais utiliser mon imprimante connectée au réseau par exemple. Il a une IP statique de 10.0.0.253. Je n'en connais pas le nom cependant. Pour cela, je veux l'appeler hp_printer. Je vais cingler l'adresse IP et le nom d'hôte pour cela, puis ajouter à /etc/hosts.

terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer

terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms

Maintenant, je peux également accéder à la page Web de la configuration de mon imprimante au nom que je lui ai donné au lieu de l'adresse IP qui pourrait être plus facile à retenir:

entrez la description de l'image ici

Votre fichier /etc/resolv.conf est également utilisé par DNS pour rechercher les noms d'hôte. Il s'agit du fichier de configuration du résolveur. Il fournit le domaine de recherche afin que vous n'ayez pas à spécifier votre FQDN tout le temps lorsque vous recherchez un hôte. Il fournit également l'adresse IP du DNS ou du serveur de noms de votre réseau local. La searchligne ci-dessous montre le nom localqui est mon nom de domaine.

terrance@terrance-ubuntu:~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local

J'espère que cela aidera à mieux comprendre le fonctionnement du DNS et du FQDN.

Terrance
la source
pourquoi mappez-vous le nom de domaine complet dans / etc / hosts à 127.0.1.1?
Bulat M.
1
@BulatM. Veuillez voir ma réponse révisée.
Terrance
pourriez-vous expliquer la différence entre les mots clés de recherche et de domaine dans /etc/resolv.conf? Je lis la page de manuel de resolv.conf, toujours pas très claire.
Bulat M.
Et pourrait-on les inclure tous les deux? Pourriez-vous présenter un cas valable valable en réponse? Merci.
Bulat M.
1
@BulatM. Cliquez sur les liens dans ma réponse, et ils vous amèneront à plus d'informations sur les choses. Comme en.wikipedia.org/wiki/Resolv.conf donne beaucoup plus d'informations. Je suis là pour vous aider, pas pour vous enseigner. Je ne suis pas payé, car tout cela est bénévole, alors faites vos propres études.
Terrance
4

La page de manuel dehostname(1) discute de cela (le paragraphe en gras est souligné par moi):

LE FQDN
   Le nom de domaine complet (FQDN) du système est le nom qui
   le résolveur (3) renvoie le nom d'hôte, tel que ursula.example.com .
   Il s'agit généralement du nom d'hôte suivi du nom de domaine DNS (la partie
   après le premier point). Vous pouvez vérifier le nom de domaine complet à l'aide du nom d'hôte --fqdn   ou
   le nom de domaine en utilisant dnsdomainname .

   Vous ne pouvez pas modifier le nom de domaine complet avec nom d' hôte ou nom de domaine DNS .

   La méthode recommandée pour définir le nom de domaine complet consiste à faire en sorte que le nom d'hôte soit
   un alias pour le nom complet à l'aide de / etc / hosts, DNS ou NIS.
   Par exemple, si le nom d'hôte était "ursula", on pourrait avoir une ligne dans
   / etc / hosts qui lit

          127.0.1.1 ursula.example.com ursula

   Techniquement: le nom de domaine complet est le nom que getaddrinfo (3) renvoie pour l'hôte
   nom retourné par gethostname (2). Le nom de domaine DNS est la partie après
   le premier point.

   Cela dépend donc de la configuration du résolveur (généralement dans
   /etc/host.conf) comment vous pouvez le changer. Généralement, le fichier hosts est analysé
   avant DNS ou NIS, il est donc plus courant de modifier le nom de domaine complet dans
   / etc / hosts.

Et si vous donnez un nom de domaine complet comme nom d'hôte pendant l'installation, il écrit uniquement le premier composant /etc/hostnameet conserve le nom de domaine complet /etc/hosts.

Donc, dans ce cas, laissez simplement l'installateur faire ce qu'il fait.

muru
la source
Est-ce (inclusion de 127.0.1.1 ursula.example.com ursula dans / etc / hosts) Debian \ Ubuntu spécifique ou pourrait-il être appliqué aussi bien à toute autre distribution?
Bulat M.
1
Je ne sais pas pour les autres distributions. Vous pouvez faire la même chose dans Arch et Cent OS, cependant. Les questions sur les autres distributions devraient être posées sur Unix et Linux .
muru