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 位址清單。

相關內容