Postfix

安裝 Postfix 郵件伺服器後,是否需要將 mail.example.com 添加到 hosts 文件中?

  • May 5, 2020

環境: CentOS、Postfix、Dovecot、Digital Ocean droplet

我的/etc/hosts文件包含這些行。

# The following lines are desirable for IPv4 capable hosts
127.0.0.1 example.com example
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4

# The following lines are desirable for IPv6 capable hosts
::1 example.com example
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

**問:**安裝 Postfix 郵件伺服器後,是否需要mail.example.com在 IPv4 和 IPv6 部分的第一行添加內容?如果我這樣做,主機列出的順序是否重要?

例如,

127.0.0.1 example.com example mail.example.com

**附錄:**這些註釋在hosts文件的頂部。不確定它們在這種情況下是否意味著什麼,因為當我編輯此文件時,更改似乎仍然存在。

# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.redhat.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data

目前尚不清楚您要避免或解決什麼具體問題,因此有一些一般性提示:

伺服器需要知道它的主機名。我通常將其設置在main.cf

myhostname = mailserver.mycompany.net
myorigin = @myhostname

當域具有不允許使用子域的嚴格 DMARC 時,我會執行以下操作:

masquerade_domains = $mydomain
masquerade_classes = envelope_sender, header_sender

這將使原點mycompany.net。理解為什麼超出了這個答案的範圍;網際網路有很多來源。

那麼,以下內容需要正確:

  • 郵件伺服器將使用 SMTP 連接到其他伺服器HELO mailserver.mycompany.net
  • 然後,許多“其他伺服器”將解析該 IP,並查找該 IP 的 PTR 記錄(反向 DNS)並且必須匹配。PTR 記錄通常在您的託管服務提供商處配置。

這適用於 IPv4 和 IPv6。

至於編輯/etc/hosts:cloud-init 可能不會在每次啟動時都覆蓋文件,但將來可能會這樣做。如果需要編輯 hosts 文件,您可能需要配置 cloud-init 以保留它。

順序無關緊要,但您可以對其進行測試。用 IP 地址組成一些名稱,然後host對它們進行操作。

是否需要設置?取決於 DNS 環境。我經常將伺服器的 fqdn 條目設置為/etc/hosts

22.33.44.55 mailserver.mycompany.net mailserver

hostname --fqdn儘管有 DNS 配置,這種方式仍然有效。建議有hostname --fqdn工作,但使用上面的 Postfix 配置,不是必須的,因為它是指定的。(但其他服務可能會出現意外行為)。

引用自:https://serverfault.com/questions/1015681