Postfix 中继主机。连接被拒绝

Postfix 中继主机。连接被拒绝

Postfix 拒绝作为中继主机发送电子邮件。它一直说:

连接到 mydomain.com[xxx.xx.xxx.xxx]:25: 连接被拒绝

但是端口 25 是开放的:

sudo netstat -ntlp

tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN      39162/mysqld        
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      57910/proftpd: (acc 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      614/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      762/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      70265/master        
tcp6       0      0 :::3306                 :::*                    LISTEN      39162/mysqld        
tcp6       0      0 :::80                   :::*                    LISTEN      61217/apache2       
tcp6       0      0 :::22                   :::*                    LISTEN      762/sshd: /usr/sbin 
tcp6       0      0 ::1:25                  :::*                    LISTEN      70265/master        
tcp6       0      0 :::443                  :::*                    LISTEN      61217/apache2

我不知道这个问题从何而来。
有人能帮助我吗?

答案1

您的中继主机需要身份验证。也就是说,您需要证明您有权通过此中继主机发送邮件。通常,中继主机操作员会为您提供凭证(一些登录名和密码),您可以在 Postfix 中配置这些凭证,以便在与中继主机通信时使用。

SMTP 客户端身份验证的配置(用于 Postfix 与中继主机(即 SMTP 服务器)通信时使用)在Postfix SASL 操作指南。 就是这样:

在后缀中main.cf

relayhost = [relay.host.name]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

第一行设置中继主机,第二行启用身份验证,第三行指定存储每个中继主机凭据的文件 — 即/etc/postfix/sasl_passwd。在该文件中输入:

[relay.host.name]              username:password

postmap /etc/postfix/sasl_passwd对此文件进行更改后以及postfix reload编辑后始终运行main.cf。还限制对此文件的访问,因为它包含敏感信息:

chmod 0600 /etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd

请注意,如果您的中继主机希望您在另一个端口上提交(例如,当我必须设置中继主机时,我在smtp submission端口上进行了设置tcp/587),那么您需要在文件中同时指定relayhost = [relay.host.name]:submissionmain.cf一点sasl_passwd

Postfix SMTP 客户端不支持“直接 SMTPS”(他们称之为“wrappermode”),其中 SMTP-over-SSL 服务器期望在端口上直接进行 SSL 握手tcp/465(就像 Google 所做的那样)。它仅支持使用 STARTTLS 命令启动端口 25 或 587 上的 TLS。

答案2

Connection refused表示没有任何东西在给定接口上的给定端口上进行监听。并且您的 netstat 输出显示端口 25 仅在127.0.0.1环回接口上进行监听。

如果您尝试从另一台机器访问它,则无法访问。

要让 Postfix 监听所有接口,你需要更改inet_interfaces

inet_interfaces = all

如果您有多个接口并且不想让它监听所有接口,您还可以提供一个以逗号分隔的它应该监听的 IP 地址列表。

相关内容