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.
