Когда я читал в странице справочника, рекомендуется поместить имя хоста (без доменного имени) к /etc/hostname
. Например, хост вместо host.domainsub.domaintld. Но, поскольку я знаю, некоторое программное обеспечение полагается на наличие FQDN
в /etc/hostname
.
В чем нужно указать /etc/hostname
на машинах Debian/Ubuntu?
Если не FQDN, где FQDN должен быть указан вместо этого?
Я знаю, вопрос немного стар, но не сделал найденного четкого ответа. Некоторые люди говорят что имя хоста, некоторые - FQDN.Спасибо.
В/etc/hostname файле Вы используете только имя хоста. FQDN можно установить на:/etc/hosts, который мог бы быть похожим:
127.0.1.1 thishost.mydomain.org thishost
Согласно руководству файла hosts.
страница справочника 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
.
Так, в этом случае, просто позволяют установщику сделать то, что он делает.
Пересмотренный ответ:
Сам хост не обрабатывает фактический 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-адреса, который могло быть легче помнить:
Ваш/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 работают.