Postfix
安裝 Postfix 郵件伺服器後,是否需要將 mail.example.com 添加到 hosts 文件中?
環境: 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 配置,不是必須的,因為它是指定的。(但其他服務可能會出現意外行為)。