Нужно использовать FQDN в/etc/hostname вместо имени хоста?

Когда я читал в странице справочника, рекомендуется поместить имя хоста (без доменного имени) к /etc/hostname. Например, хост вместо host.domainsub.domaintld. Но, поскольку я знаю, некоторое программное обеспечение полагается на наличие FQDN в /etc/hostname.

В чем нужно указать /etc/hostname на машинах Debian/Ubuntu?

Если не FQDN, где FQDN должен быть указан вместо этого?

Я знаю, вопрос немного стар, но не сделал найденного четкого ответа. Некоторые люди говорят что имя хоста, некоторые - FQDN.Спасибо.

10
задан 21 December 2016 в 10:11

3 ответа

В/etc/hostname файле Вы используете только имя хоста. FQDN можно установить на:/etc/hosts, который мог бы быть похожим:

127.0.1.1        thishost.mydomain.org    thishost

Согласно руководству файла hosts.

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

6
ответ дан 23 November 2019 в 04:22

страница справочника hostname(1) обсуждает это (абзац полужирным подчеркнут мной):

THE FQDN
   The  FQDN  (Fully Qualified Domain Name) of the system is the name that
   the resolver(3) returns for the host name, such as, ursula.example.com.
   It  is  usually  the hostname followed by the DNS domain name (the part
   after the first dot).  You can check the FQDN using hostname --fqdn  or
   the domain name using dnsdomainname.

   You cannot change the FQDN with hostname or dnsdomainname.

   The  recommended  method of setting the FQDN is to make the hostname be
   an alias for the fully qualified name using /etc/hosts,  DNS,  or  NIS.
   For  example,  if  the  hostname was "ursula", one might have a line in
   /etc/hosts which reads

          127.0.1.1    ursula.example.com ursula

   Technically: The FQDN is the name getaddrinfo(3) returns for  the  host
   name returned by gethostname(2).  The DNS domain name is the part after
   the first dot.

   Therefore it depends on the configuration of the resolver  (usually  in
   /etc/host.conf) how you can change it. Usually the hosts file is parsed
   before DNS or NIS,  so  it  is  most  common  to  change  the  FQDN  in
   /etc/hosts.

И если Вы даете FQDN как имя хоста во время установки, оно пишет только компонент кулака в /etc/hostname и сохраняет FQDN в /etc/hosts.

Так, в этом случае, просто позволяют установщику сделать то, что он делает.

4
ответ дан 23 November 2019 в 04:22

Пересмотренный ответ:

Сам хост не обрабатывает фактический FQDN. Это обрабатывается DNS. FQDN (Полностью определенное Доменное имя) обрабатывается именами перевода DNS в IP-адреса. Используя /etc/hosts файл, Вы являетесь чрезвычайно переопределяющими сервер DNS. Компьютер смотрит /etc/hosts файл сначала, чтобы видеть, определяется ли запись для имени хоста к IP-адресу. Записи в /etc/hosts похож на следующее:

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

Эти записи не являются конкретным дистрибутивом. Все Ose используют тот же формат для этих строк. Просто местоположение hosts изменения файла. Linux, обычно это расположено в /etc/ папка, где в Windows это обычно располагается в C:\Windows\System32\drivers\etc\ папка.

Разбивая ту строку, Вы видите, что я присваиваю обоим terrance-ubuntu.local, который является моим FQDN самим для переопределения DNS так, чтобы приложения знали для не отъезда моего компьютера, и terrance-ubuntu, который является именем хоста, снова так, чтобы приложения знали для не отъезда моего компьютера или 127.0.0.1 (localhost). Присвоение моего имени хоста моей системы к 127.0.1.1 не имеет никакого эффекта на остальную часть компьютеров, находящих мой хост в сети. Если DNS будет работать правильно, то они будут видеть мое имя хоста как 10.0.0.100. Причина использования 127.0.1.1 чтобы мои приложения нашли мою систему более быстрой, так как она будет знать, что моя система не отсутствует где-то в другом месте на моей сети. Мое фактическое имя хоста с .local будучи моим FQDN, .local на самом деле мой Домен, который я устанавливаю через свой маршрутизатор, который является также другим сервером DNS в моей сети.

Теперь, скажем, то, что сервисы DNS на локальную сеть не присваивают имена хостов или FQDNs к IP-адресам, но Вы знаете, каков IP-адрес хоста в локальной сети. Вы затем присвоили бы тот хост в Вашем /etc/hosts файл так, чтобы Вы не должны были вводить в IP-адресе хоста каждый раз, Вы хотите получить доступ к нему. Хост мог бы быть сервером инструмента, принтером, или некоторая другая сеть соединила систему. Добавьте, что запись как Вы обычно была бы к /etc/hosts файл.

Я собираюсь использовать подключенный принтер своей сети, например. Это имеет статический IP 10.0.0.253. Я не знаю название его все же. Для этого я хочу назвать его hp_printer. Я проверю с помощью ping-запросов IP и имя хоста для него, затем добавить к /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

Теперь, я могу также получить доступ к веб-странице для своей настройки принтера в имени, которое я дал ей вместо IP-адреса, который могло быть легче помнить:

enter image description here

Ваш/etc/resolv.conf файл также используется DNS, чтобы помочь найти имена хостов. Это - конфигурационный файл для сопоставителя. Это обеспечивает область поиска так, чтобы Вы не указывали свой FQDN все время при поиске хоста. Это также предоставляет IP-адрес для DNS или сервера имен Вашей локальной сети. search строка ниже показывает имя local который является моим доменным именем.

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

Надо надеяться, это помогает дать лучшее понимание того, как DNS и FQDNs работают.

10
ответ дан 23 November 2019 в 04:22

Другие вопросы по тегам:

Похожие вопросы: