温馨提示×

如何调试debian邮件服务器

小樊
42
2026-10-14 10:27:12
栏目: 云计算

调试 Debian 邮件服务器是一个系统性工作,通常包含 服务状态检查、日志分析、网络与端口、DNS/证书、配置验证、发信测试 等步骤。下面我按“从外到内、由浅入深”的方式给你一套实用调试流程,适用于 Postfix / Exim / Dovecot 等常见组合。


一、确认邮件服务是否运行

1. 查看服务状态

systemctl status postfix
systemctl status dovecot
# 若用 exim
systemctl status exim4

如果未运行:

journalctl -xe

二、查看邮件服务器日志(最重要)

Debian 默认日志位置

/var/log/mail.log
/var/log/mail.err
/var/log/syslog

实时查看:

tail -f /var/log/mail.log

常见关键词:

  • status=bounced
  • relay=
  • connection refused
  • certificate verify failed
  • timeout

三、测试端口与网络连通性

1. 本机端口监听

ss -lntp | grep -E '25|465|587|110|143|993|995'

2. 防火墙

iptables -L -n
# 或
ufw status

确保开放:

  • 25(SMTP)
  • 465 / 587(提交)
  • 110/143(POP/IMAP,建议用加密)

3. 从外部测试

telnet mail.example.com 25

正常应有:

220 mail.example.com ESMTP Postfix

四、DNS 与反垃圾邮件相关

1. 检查 MX 记录

dig MX example.com

2. PTR(反向解析)

dig -x 1.2.3.4

3. SPF / DKIM / DMARC

  • SPF:dig TXT example.com
  • DKIM:dig TXT default._domainkey.example.com
  • DMARC:dig TXT _dmarc.example.com

五、Postfix 常见调试方法

1. 检查配置语法

postfix check

2. 查看生效配置

postconf -n

3. 打开详细日志

编辑 /etc/postfix/main.cf:

debug_peer_level = 3

或临时:

postconf -e "debug_peer_level=3"
systemctl reload postfix

4. 手动发信测试

sendmail -v user@example.com
Subject: test

hello
.

六、Dovecot(IMAP/POP3)调试

1. 测试登录

telnet localhost 143

或:

openssl s_client -connect mail.example.com:993

2. 查看配置

dovecot -n

3. 用户认证问题

doveadm user testuser
doveadm auth testuser

七、证书与 TLS 问题

1. 检查证书

openssl x509 -in /etc/ssl/certs/mail.crt -noout -text

2. 测试 TLS

openssl s_client -starttls smtp -connect mail.example.com:25

八、常见故障速查表

现象 可能原因
能收不能发 587 端口未开 / 认证失败
能发不能收 Dovecot 未运行 / 防火墙
邮件进垃圾箱 SPF/DKIM/DMARC 缺失
外部连不上 25 云厂商封端口
证书报错 证书路径错误 / 过期

九、推荐调试工具

swaks        # SMTP 测试神器
mailutils    # 命令行发信
tcpdump      # 抓包分析

示例:

swaks --to user@example.com --from me@example.com --server mail.example.com

如果你愿意,可以告诉我:

  • 用的是 Postfix / Exim / Sendmail
  • 是否能 收 / 发
  • 报错日志内容

我可以直接帮你定位问题。

0 踩