Несоответствующие доменные имена из hostname -f и domainname

Несоответствующие доменные имена из hostname -f и domainname

Я настраиваю почтовый сервер Postfix, имя хоста 'letters', для обработки почты для домена 'example.net'. Я пытался установить доменное имя letters на example.net с помощью nis, но получаю непоследовательный вывод от hostname -f ('letters.stuff.comcast.net') и domainname ('example.net'). Как мне установить доменное имя, чтобы команда hostname -f выдавала 'example.net'? Насколько это важно для правильной работы Postfix?

Хост letters работает под управлением Ubuntu и подключается к интернету через кабельный модем Comcast через маршрутизатор openwrt. Сервер имен для домена example.net находится на удаленном компьютере Debian, который еще не настроен для создания хоста или псевдонима для letters.

Я предполагаю, что доменное имя в выходных данных hostname отражает доменное имя, полученное от сервера comcast клиентом dhcp ящика, и отражает идею о том, что ящик является клиентом в этой сети. Является ли решением создание хоста 'letters' на сервере имен для example.net? Требуется ли для этого дополнительно добавить этот сервер имен к тем, которые перечислены в файле resolv.conf писем?

решение1

Убедитесь, что ваши /etc/hostsданные (или данные NIS) верны.

Я собирался попытаться объяснить это, но страница руководства рассказывает эту историю лучше:

THE FQDN
    You can't change the FQDN (as returned by hostname --fqdn) or  the  DNS
    domain  name (as returned by dnsdomainname) with this command. The FQDN
    of the system is the name that the resolver(3)  returns  for  the  host
    name.

    [..]

    Therefore  it  depends on the configuration (usually in /etc/host.conf)
    how you can change it. Usually (if the hosts file is parsed before  DNS
    or NIS) you can change it in /etc/hosts.

решение2

Я столкнулся с этой проблемой вчера, работая над обновлением сервера, которое начал кто-то другой... В выводе hostname -f никогда не было правильного конечного домена (отсутствовало .org).

# hostname foobar.example.org
# hostname -f
foobar.example
#

# cat /etc/hosts
10.20.11.244    foobar.example foobar

Решение:

Доменная часть hostname -f, похоже, взята из записи /etc/hosts для этого хоста. После того, как я исправил hostname в /etc/hosts, hostname -f возвращал правильный домен:

# hostname foobar
# hostname
foobar
# hostname -f
foobar.example.org

YMMV.

решение3

Если ваш IP не статический, то он /etc/hostsне будет работать для вас (или будет работать только временно, пока вы не получите новый IP). Я не уверен, что это сработает, но вот что можно попробовать:

  1. настройте свой dhcp-клиент так, чтобы он не запрашивал доменное имя с dhcp-сервера. Или просто скажите ему вообще не трогать resolv.conf, что вы, возможно, уже сделали, если у вас есть собственные серверы имен.
  2. Установите свое доменное имя на example.net в/etc/resolv.conf
  3. убедитесь, что ваш сервер имен может разрешить IP-адреса letters.example.net. Я полагаю, вам придется использовать какую-то динамическую службу DNS, поскольку это решение предназначено для нестатических IP-адресов.

Что может означать, что мой ответ на ваш вопрос — просто «да».

решение4

Это часто неправильно понимаемая проблема с "domainname". Вот верхняя часть страницы руководства на моей системе Mac OS X, но у вас будет похоже:

DOMAINNAME(1)             BSD General Commands Manual            DOMAINNAME(1)

NAME
     domainname -- set or print the name of the current NIS domain

Эта команда не используется для настройки DNS!

Связанный контент