
Я настраиваю почтовый сервер 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). Я не уверен, что это сработает, но вот что можно попробовать:
- настройте свой dhcp-клиент так, чтобы он не запрашивал доменное имя с dhcp-сервера. Или просто скажите ему вообще не трогать resolv.conf, что вы, возможно, уже сделали, если у вас есть собственные серверы имен.
- Установите свое доменное имя на example.net в
/etc/resolv.conf
- убедитесь, что ваш сервер имен может разрешить 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!