web-dev-qa-db-fra.com

Faut-il utiliser le nom de domaine complet dans / etc / hostname au lieu de hostname?

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

Que devrait-on spécifier dans /etc/hostname sur les machines Debian/Ubuntu?

Si ce n'est pas le nom de domaine complet, où doit être spécifié le nom de domaine complet?

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

10
Bulat M.

Dans le fichier/etc/hostname, vous utilisez uniquement le nom d’hôte. Le nom de domaine complet que 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

6
Adonist

Réponse révisée:

L'hôte lui-même ne gère pas le nom de domaine complet. Cela est géré par le DNS . Le nom de domaine complet (Full Qualified Domain Name) est géré par DNS qui traduit les noms en adresses IP. En utilisant le fichier /etc/hosts, vous substituez essentiellement le serveur DNS. L'ordinateur consulte d'abord le fichier /etc/hosts pour voir si une entrée est définie pour un nom d'hôte en adresse IP. Les entrées dans /etc/hosts ressemblent à ceci:

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 systèmes d'exploitation utilisent le même format pour ces lignes. Seul l'emplacement du fichier hosts change. Linux, il se trouve généralement dans le dossier /etc/; sous Windows, il se trouve généralement dans le dossier C:\Windows\System32\drivers\etc\.

En séparant cette ligne, vous pouvez voir que j’assigne à la fois terrance-ubuntu.local, qui est mon nom de domaine complet lui-même, pour remplacer DNS afin que les applications sachent ne pas quitter mon ordinateur, et terrance-ubuntu, qui est le nom d’hôte, afin que ces applications sachent ne pas quitter ordinateur ou 127.0.0.1 ( localhost ). L'affectation de mon nom d'hôte de mon système à 127.0.1.1 n'a aucun effet sur le reste des ordinateurs recherchant mon hôte sur le réseau. Si le DNS fonctionne correctement, ils verront mon nom d’hôte sous le nom 10.0.0.100. La raison d'utiliser 127.0.1.1 est pour mes applications de trouver mon système plus rapidement, car il saura que mon système n'est pas ailleurs sur mon réseau. Mon nom d’hôte actuel, le .local étant mon nom de domaine complet, le .local est en fait le domaine que j’ai configuré via mon routeur, qui est également un autre serveur DNS sur mon réseau.

Supposons maintenant que les services DNS sur le réseau local n'attribuent pas de noms d'hôte ou de noms de domaine complets à des adresses IP, mais que vous sachiez quelle est l'adresse IP de l'hôte sur le réseau local. Vous affecteriez ensuite cet hôte dans votre fichier /etc/hosts afin que vous n'ayez pas besoin de saisir 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 dans le fichier /etc/hosts.

Je vais utiliser mon imprimante connectée au réseau par exemple. Il a une adresse IP statique de 10.0.0.253. Je ne 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 sous le nom que je lui ai donné à la place de l'adresse IP, qui pourrait être plus facile à mémoriser:

enter image description here

Votre fichier / etc/resolv.conf est également utilisé par DNS pour vous aider à trouver les noms d’hôte. C'est le fichier de configuration du résolveur. Il fournit le domaine de recherche afin que vous n'ayez pas à spécifier votre nom de domaine complet à tout moment 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 ligne search ci-dessous montre le nom local qui 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 des noms de domaine complets.

10
Terrance

La page de manuel de hostname(1) traite de cette question (le paragraphe en gras est souligné par moi):

 LE FQDN  
 Le FQDN (nom de domaine complet) du système est le nom que 
 le résolveur  (3)  renvoie pour 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 
 Située après le premier point). Vous pouvez vérifier le nom de domaine complet en utilisant  le nom d'hôte --fqdn  ou 
 Le nom de domaine en utilisant  dnsdomainname . 
 
 Vous ne pouvez pas modifier le nom de domaine complet avec  le nom d'hôte  ou  nom_domaine_ns . 
 
  La méthode recommandée pour définir le nom de domaine complet est de définir le nom d'hôte sur 
 un alias pour le nom complet utilisant/etc/hosts, DNS ou NIS. 
 Par exemple, si le nom d’hôte était "ursula", une ligne pourrait figurer dans 
/etc/hosts qui se lit comme suit: 
 
 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 renvoyé par gethostname (2). Le nom de domaine DNS est la partie après le premier point 
.  
 
 Par conséquent, cela dépend 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 très courant de modifier le nom de domaine complet dans 
/Etc/hosts.

Et si vous spécifiez un nom de domaine complet comme nom d’hôte lors de l’installation, il n’écrit que le premier composant sur /etc/hostname et conserve le nom de domaine complet dans /etc/hosts.

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

4
muru