Ein Server hat einen Kurznamen und einen voll qualifizierten Namen, und drei getrennte Dinge müssen sich darüber einig sein: der Kernel, die hosts-Datei und DNS. Setzen Sie eines und die anderen nicht, scheint alles zu funktionieren — bis Post abgewiesen wird oder sudo bei jedem Befehl zehn Sekunden stockt.

Setzen Sie ihn

sudo hostnamectl set-hostname web1.example.com
hostnamectl

Dann die hosts-Datei

Das ist der Teil, der meist übersehen wird. Die Maschine muss ihren eigenen Namen auflösen können, ohne DNS zu fragen.

# /etc/hosts
127.0.0.1   localhost
127.0.1.1   web1.example.com web1
Die zehn Sekunden Pause vor jedem sudo-Befehl kommen von dieser Datei. sudo schlägt den Hostnamen nach, die Abfrage läuft in einen Timeout, und danach macht es normal weiter.

Dann DNS

Ein A-Eintrag für web1.example.com, der auf den Server zeigt, und ein Reverse-Eintrag von der IP zurück auf diesen Namen. Den Vorwärts-Eintrag steuern Sie; den Rückwärts-Eintrag setzt, wem die IP gehört — Ihr Anbieter.

Warum das für Post wichtig ist

  • Ein empfangender Server prüft, ob der Name, den Ihr Server im HELO nennt, auflösbar ist und ob die IP auf ihn zurück auflöst.
  • Eine Abweichung ist eines der stärksten Spam-Signale überhaupt, und sie greift, bevor Ihr Inhalt überhaupt gelesen wird.
  • Es ist dieselbe Prüfung wie in Reverse DNS für einen Mailserver.

Bestätigen

hostname -f          # the fully qualified name
getent hosts $(hostname -f)
dig +short web1.example.com
Tun Sie das, bevor Sie irgendetwas installieren. Mehrere Pakete lesen den Hostnamen bei der Installation und schreiben ihn in ihre eigene Konfiguration — ihn danach zu ändern heißt, sie alle zu bearbeiten.