Postfix 不知道自己的主机名

Postfix 不知道自己的主机名

在我的 postfix 日志中,我经常看到 postfix 无法向 root@levinus [我的主机名] 发送电子邮件,因为没有 levinus 的 DNS 记录。但是在我的 /etc/hosts 中有一个 levinus 的条目(--> 127.0.0.1 和我的静态 IP)。使用 ping 可以到达 levinus,然后我 ping 自己。但是为什么 postfix 不接受 /etc/hosts 条目?

后缀日志的一部分:

BC59A2FE000B: to=<root@levinus>, relay=none, delay=0.03,    
delays=0.01/0/0.02/0, dsn=5.4.4, status=bounced (Host or domain name not   
found. Name service error for name=levinus type=AAAA: Host not found)
Oct 11 14:47:29 levinus postfix/qmgr[29217]: BC59A2FE000B: removed

/etc/hosts 的一部分:

[STATIC IP] levinus
127.0.0.1 localhost.localdomain localhost levinus

系统是Ubuntu 14.04 LTS。

//编辑 main.cfg 中的 inet_protocols = ipv4,来自 postfix 相同。只有错误消息是另一个(类型 = A)。当我将 levinus 添加到 /etc/hosts 中的 IPv6 条目 ::1 时,它是相同的(类型 = AAAA)

//Edit2 postfix 日志甚至带有levinus主机名:

Oct 12 14:40:33 levinus postfix/smtpd[10103]: connect from levinus[127.0.0.1]
Oct 12 14:40:33 levinus postfix/smtpd[10103]: disconnect from levinus[127.0.0.1]

但是发送给 root@levinus 的所有邮件仍然被退回。

即使我编辑了 /etc/nsswitch.conf 以hosts: files仅 postfix 不知道自己的主机名。之前它被设置为hosts: files dns

答案1

问题不在于 IPv4 地址,而在于 IPv6,因为AAAA记录不存在。

可以通过将 postfix 切换为仅使用 IPv4 来解决此问题。sudo postconf -e 'inet_protocols = ipv4'然后重新加载 postfix。

相关内容