Когда я настраиваю VPS, я устанавливаю имя «main», чтобы в моих файлах / etc / hosts и / etc / hostnames была одна запись (то есть «main»). Итак, я установил root-доступ по ssh и набрал «hostname», и он дал мне «main». То же самое, когда я набираю "hostname -f".
Ну, я пытаюсь настроить Exim4 для отправки почты из моего приложения Django (мне нужно только отправлять, а не получать), и я добавил следующее в /etc/hosts
.
127.0.1.1 main.mydomain.com main
<myip> main.mydomain.com main
Затем я казнил service hostname restart
и hostname -f
только вернулся main
. Я даже перезагрузился (чего я стараюсь избегать), но он все равно возвращается main
. Не уверен, почему это так ... В самих файлах отображаются мои новые записи, но я не могу получить фактические hostname
или hostname -f
Приказ измениться ради моей жизни.
Я предполагаю, но не уверен на 100%, поэтому, когда использую команду echo test message | mail -s test email@email.com
Я не получаю письмо на email@email.com
(слишком много писем?). Если не обязательно настраивать имена хостов для использования exim, я бы хотел избежать этого, потому что это доставило мне такую головную боль.
Любая помощь сделает меня бесконечно благодарным за ваше великолепие.
Чтобы установить имя домена, вы можете использовать одноименную программу domainname
:
sudo domainname example.com
Чтобы запросить фактически установленное значение, вызовите его без параметров.
Также добавьте необходимость запустить hostname.sh
скрипт (зависит от ОС), чтобы изменения вступили в силу:
/etc/init.d/hostname.sh
В Debian и производных есть также /etc/mailname
который должен содержать домен отправителя по умолчанию для исходящих писем.
Я не могу сделать заявление о Exim, но я думаю, что значения по умолчанию в exim для host- и domainame должны указывать на настройки ОС.
Чтобы процитировать справочную страницу hostname:
Полное доменное имя
Вы не можете изменить полное доменное имя (возвращаемое с помощью hostname --fqdn) или имя домена DNS (возвращаемое dnsdomainname) с помощью этой команды. Полное доменное имя системы - это имя, которое преобразователь (3) возвращает для имени хоста.
Технически: полное доменное имя - это имя, возвращаемое getaddrinfo (3) для имени хоста, возвращаемого gethostname (2). Доменное имя DNS - это часть после первой точки.
Следовательно, это зависит от конфигурации (обычно в /etc/host.conf), как вы можете ее изменить. Обычно (если файл hosts анализируется до DNS или NIS) вы можете изменить его в / etc / hosts.
Если почта отправляется через postfix, вам также следует отредактировать /etc/postfix/main.cf
иметь правильное значение для myhostname = xyz