Postfix

埠 587 errno 上的 Postfix SMTP 連接僅來自 localhost 被拒絕

  • August 5, 2018

如果我從 localhost (127.0.0.1) 使用埠 587 和 STARTTLS 連接到 mail.example.tld 上的 smtp 伺服器,我會收到錯誤“連接被拒絕,errno 111”。來自具有另一個 IP 的伺服器的連接正在工作,問題僅發生在同一伺服器上的 localhost 上。

當我將 mail.example.tld 更改為 smtp.example.tld 時,它可以工作。對於 smtp.example.tld 我的 example.tld 區域中有以下 DNS 條目

smtp IN CNAME mail.example.tld

從 netstat 我得到

netstat -tlanp | grep 587
tcp        0      0 127.0.0.1:587           0.0.0.0:*               LISTEN      7617/master
tcp        0      0 [IPv4-Address]:587       0.0.0.0:*               LISTEN      7617/master
tcp6       0      0 [IPv6-Address]:587   :::*                    LISTEN      7617/master
tcp6       0      0 ::1:587                 :::*                    LISTEN      7617/master

Postfix 監聽所有地址。當我嘗試

openssl s_client -starttls smtp -crlf -connect mail.example.tld:587

我得到以下

139770323395008:error:0200206F:system library:connect:Connection refused:../crypto/bio/b_sock2.c:108:
139770323395008:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:109:
connect:errno=111

在我來自後綴的 main.cf 中,我有

inet_interfaces = IPv4, [IPv6], localhost

當我將其更改為

inet_interfaces = all

然後它工作。

如果我指定我的 IP 地址,為什麼會拒絕來自本地主機的連接?

我猜“mail.example.tld”並不能解決您的想法,通常是因為本地 /etc/hosts 覆蓋。

您是否嘗試僅使用數字 IP 地址連接?

“host mail.example.tld”是否解析為與“ping -c1 mail.example.tld”相同的IP地址?

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