![安装 Postfix 邮件服务器后,我需要将 mail.example.com 添加到 hosts 文件中吗?](https://linux22.com/image/752002/%E5%AE%89%E8%A3%85%20Postfix%20%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8E%EF%BC%8C%E6%88%91%E9%9C%80%E8%A6%81%E5%B0%86%20mail.example.com%20%E6%B7%BB%E5%8A%A0%E5%88%B0%20hosts%20%E6%96%87%E4%BB%B6%E4%B8%AD%E5%90%97%EF%BC%9F.png)
环境: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
答案1
目前尚不清楚您要避免或修复什么具体问题,因此提供一些一般提示:
服务器需要知道其主机名。我通常在以下位置设置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 环境。我经常会/etc/hosts
像这样设置服务器的 fqdn 条目:
22.33.44.55 mailserver.mycompany.net mailserver
这种方式hostname --fqdn
不管 DNS 配置如何都能正常工作。hostname --fqdn
建议使用这种方式,但使用上述 Postfix 配置,则没有必要,因为已指定。(但其他服务可能会出现意外行为)。