Linux
Postfix遠端連接超時,本地工作正常
在 Debian 上執行 Postfix 我無法再連接發送郵件。它工作到大約一周前。我不記得在那段時間接觸過伺服器的配置,這讓我很難找出問題所在。
從伺服器連接到自身時,它工作正常:
root@xxxx:~# telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. ehlo localhost 220 mail.xxxx.de ESMTP Postfix (Debian/GNU) 250-mail.xxxx.de 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host.
嘗試遠端執行相同操作會超時:
laptop:~ $ telnet mail.xxxx.de 25 Trying 93.xx.xx.xx... telnet: connect to address 93.xx.xx.xx: Operation timed out telnet: Unable to connect to remote host
配置如下:
root@xxxx:~# postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix home_mailbox = Maildir/ inet_interfaces = all inet_protocols = ipv4 mailbox_command = mailbox_size_limit = 0 mydestination = localhost.localdomain, localhost.localdomain, localhost myhostname = mail.xxxx.de mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = smtp_tls_note_starttls_offer = yes smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_exceptions_networks = $mynetworks smtpd_sasl_local_domain = smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_auth_only = no smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_session_cache_timeout = 3600s smtpd_use_tls = yes tls_random_source = dev:/dev/urandom virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf virtual_gid_maps = static:8 virtual_mailbox_base = /var/vmail virtual_mailbox_domains = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 150 virtual_transport = dovecot
接收郵件沒有問題,遠端檢索郵件也是如此。你知道我接下來可以檢查什麼嗎?
您收到“連接超時”錯誤的事實強烈表明這是一個防火牆問題。請執行
/sbin/iptables -nvL
檢查伺服器上現有的防火牆規則。我懷疑您會發現一條規則阻止入站埠 25 連接。
要檢查來自外部機器的連接,首先使用 traceroute:
traceroute server.example.com
那麼另一個值得嘗試的好工具是mtr,它將 ping 和 traceroute 結合到一個工具中。
最後,您應該使用 nmap 從外部系統掃描您的機器:
sudo nmap -sS -V -O server.example.com
並查看埠 25 是打開還是阻塞。
如果您沒有更改機器上的任何內容,我懷疑您的 isp 已開始阻止傳入埠 25 連接。nmap 將有助於揭示這一點。
這裡有一些關於如何確認 postfix設置為接收傳入郵件的資訊。特別是仔細檢查您的
master.cf
配置文件。這是關於 postfix 拒絕傳入消息的可能相關的 serverfault問題。