当尝试通过 FQDN(以及 LAN 的公共 IP)从同一 LAN 中的不同主机 telnet postfix 时,会发生以下错误:
root@mailer:/var/log# telnet mail.domain.com 25
Trying 1.2.3.4...
telnet: Unable to connect to remote host: Connection refused
但是,可以从同一主机访问其他服务:
root@mailer:/var/log# telnet mail.domain.com 22
Trying 1.2.3.4...
Connected to mail.domain.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u1
更有趣的是,Postfix 可以从 LAN 外部访问:
nunos-mbp:mailog nzimas$ telnet mail.domain.com 25
Trying 1.2.3.4...
Connected to mail.domain.com.
Escape character is '^]'.
220 mail.domain.com ESMTP Postfix (Ubuntu)
总结一下:
a) Postfix(运行在 10.10.10.4 / mail.domiain.com 上)拒绝来自同一 LAN(10.10.10.2)中主机的连接,但仅当通过 FQDN(mail.domain.com)查询时才会拒绝
b)mail.domain.com 接受来自 10.10.10.2 的其他服务(但 Postfix 除外)的连接
c)mail.domain.com 接受来自外界的所有服务(包括 Postfix)的连接
如果是防火墙问题,那么我认为无法通过 FQDN/公共 IP 连接到来自 10.10.10.2 的任何服务。这应该是 Postfix 中缺少一些参数,尽管到目前为止我还没有找到任何明确的线索。
答案1
将 10.10.10.4 mail.domain.com 添加到 10.10.10.2 上的 /etc/hosts 解决了该问题。这样,公共 IP 就完全被绕过了。
仍然想知道为什么当请求从同一网络中的另一台主机发送时,Postfix 会拒绝通过网络的公共 IP 进行连接(而所有其他正在运行的服务都接受它们)。