В Ubuntu 10.04 должен ли / etc / hostname содержать полное доменное имя сервера?

Ответы:

12

Нет, только часть имени хоста. Согласно man-страницам Ubuntu , /etc/hostnameдолжно содержать только часть имени хоста, а не FQDN:

Полное доменное имя

С помощью этой команды вы не можете изменить полное доменное имя (возвращаемое именем хоста --fqdn) или имя домена DNS (возвращаемое именем dnsdomainname). Полное доменное имя системы - это имя, которое resolver (3) возвращает для имени хоста.

Технически: полное доменное имя - это имя, которое gethostbyname (2) возвращает для имени хоста, возвращаемого gethostname (2). DNS-имя домена является частью после первой точки.

Поэтому от конфигурации зависит (как правило, в /etc/host.conf), как вы можете ее изменить. Обычно (если файл hosts анализируется до DNS или NIS), вы можете изменить его в / etc / hosts.

ПРИМЕЧАНИЯ

При поиске полного доменного имени пытается проверить имя семейства адресов, псевдонимы и сетевые адреса хоста определяются конфигурацией вашего преобразователя. Например, в системах GNU Libc распознаватель может быть проинструктирован сначала выполнить поиск IPv6 с помощью параметра inet6 в /etc/resolv.conf.

FILES

/ etc / hosts / etc / hostname Этот файл должен содержать только имя домена, а не полное доменное имя.

мистифицировать
источник
Я не думаю, что со страницы руководства это так ясно, как кажется, но я буду следовать советам на моем сервере. Благодарю.
RyanTM
1
«/ etc / hostname Этот файл должен содержать только доменное имя, а не полное FQDN.», мне кажется понятным ... но я согласен, это может сбить с толку.
Джош
Ой. Я думаю, что я случайно не прочитал это предложение. Я думал, что я очень внимательно читал это несколько раз. Я хотел бы предложить это предложение жирным шрифтом.
RyanTM
Ubuntu 12.04, поставляемая с hostname-3.15ubuntu1, изменила hostname(1)man-страницу так, чтобы сказать: « /etc/hostnameИсторически этот файл должен был содержать только имя хоста, а не полное каноническое FQDN. В настоящее время большая часть программного обеспечения способна справиться с полным FQDN здесь. Этот файл читается во время загрузки скриптами инициализации системы, чтобы установить имя хоста. "
200 успехов
7

Джош указывает, что рекомендует Ubuntu, но я не уверен, что это жесткое и быстрое правило.

/etc/hostnameиспользуется для установки имени хоста системы, которое совпадает с именем hostnameили uname -n. Это имя будет использоваться при входе в систему, например, на виртуальной консоли или на экране входа в Gnome GDM.

Как говорится в справочной странице, она также используется в качестве входных данных для запроса DNS при выполнении hostname --fqdnили dnsdomainname.

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

Это означает , что если это голое слово, распознаватель будет добавлять домены , перечисленные в searchили domainнастройки в , /etc/resolv.confчтобы попытаться найти полное доменное имя. Если у вас есть полное доменное имя в / etc / hostname, это означает, что вам не нужно пытаться добавить один или несколько доменов: имя однозначно.

Так что я бы сказал, что любой из них действителен. Я был бы очень заинтересован, если кто-нибудь может продемонстрировать обратное.

Mikel
источник
Вы правы, это не жесткое правило: я переключил свой ответ , потому что некоторые из моих серверов сделали иметь полное имя хоста в /etc/hostname! Только после того, как я ответил и искал ссылки, я понял, что иду против официальных документов.
Джош
1

С установленным libnss-myhostname вы можете написать fqdn /etc/hostnameи все готово. В противном случае вам также необходимо отредактировать, /etc/hostsчтобы оно соответствовало короткому имени, и сопоставьте его с полностью определенным именем (вы также можете поместить его в днс, но это не безопасно). При использовании интерфейса обратной петли не по умолчанию это выглядит так:

127.0.0.2 hostname.fully.qualified hostname
Tobu
источник