Postfix
埠 587 errno 上的 Postfix SMTP 連接僅來自 localhost 被拒絕
如果我從 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地址?