You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postfix本地响应正常但远程无服务(非防火墙问题)

Postfix远程连接无响应问题排查方案

1. 优先排查Milter服务

配置中启用了smtpd_milters = inet:127.0.0.1:11332,Postfix接受远程连接后会先与该Milter服务通信,若服务未启动或无法响应,会导致连接卡住(本地连接因mynetworks规则可能绕过此检查):

  • 检查Milter服务状态(如OpenDKIM、SpamAssassin等):
    systemctl status <对应服务名>
    
  • 临时禁用Milter测试:编辑/etc/postfix/main.cf,注释以下两行后重启Postfix:
    #smtpd_milters = inet:127.0.0.1:11332
    #non_smtpd_milters = inet:127.0.0.1:11332
    
    若远程连接恢复正常,问题根源在Milter服务,需修复其配置或启动状态。

2. 查看Postfix详细日志

master.cf中已给smtpd添加-v参数,日志会包含详细连接过程:

tail -f /var/log/mail.log

重点关注远程IP连接时的日志条目,查找超时、TLS初始化失败、Milter通信错误等信息。

3. 验证TLS证书权限与路径

远程连接时Postfix会尝试初始化TLS,若证书文件权限不足或路径错误,会导致连接停滞:

  • 检查证书文件权限:
    ls -l /etc/nginx/ssl/************/2275563/server.crt /etc/nginx/ssl/************/2275563/server.key
    
  • 确保Postfix用户(默认postfix)有读取权限:
    chown postfix:postfix /etc/nginx/ssl/************/2275563/server.crt /etc/nginx/ssl/************/2275563/server.key
    chmod 600 /etc/nginx/ssl/************/2275563/server.key
    

4. 修复截断的虚拟域配置

main.cf中virtual_alias_maps和virtual_mailbox_maps行存在截断:

virtual_alias_maps = pgsql:/etc/postfix/sql/pgsql_virtual_alias_maps.cf, pgsql:/etc/postfix/sql/pgsql_virtual_alias_dom>
virtual_mailbox_maps = pgsql:/etc/postfix/sql/pgsql_virtual_mailbox_maps.cf, pgsql:/etc/postfix/sql/pgsql_virtual_alias>

修复路径为完整格式,然后执行配置检查:

postfix check

确认无语法错误后重启Postfix。

5. 确认Postfix监听状态

检查Postfix是否监听所有接口的25端口:

ss -tulpn | grep postfix

正常输出应包含0.0.0.0:25和[::]:25,对应inet_interfaces = all配置。

6. 测试TLS协商兼容性

部分telnet客户端不支持TLS协商,导致Postfix等待响应卡住,改用openssl测试:

openssl s_client -connect <你的服务器IP>:25 -starttls smtp

若能正常获取SMTP横幅,说明是telnet客户端问题;若仍无响应,回到日志排查TLS相关错误。


内容的提问来源于stack exchange,提问作者Aaron Harker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 13:40:53