温馨提示×

centos怎么迁移邮件服务器

小樊
34
2026-10-02 23:31:17
栏目: 云计算

在 CentOS 上迁移邮件服务器,常见场景是把一台老服务器上的邮件系统(如 Postfix + Dovecot + MySQL/邮件文件)迁移到新服务器。下面给你一套通用、可落地的迁移方案,你可以根据实际组件调整。


一、迁移前准备

1. 确认邮件系统组成

先搞清楚老服务器用了什么:

  • MTA:Postfix / Sendmail / Exim
  • MDA / IMAP:Dovecot / Courier
  • 账号存储:系统用户 / MySQL / LDAP
  • 邮件存储:Maildir / mbox
  • 其他:SPF、DKIM、反垃圾(SpamAssassin、Amavis)
rpm -qa | grep -E "postfix|dovecot|sendmail|exim"

二、数据备份(老服务器)

1. 停止邮件服务

systemctl stop postfix dovecot

2. 备份邮件数据

如果是 Maildir(最常见):

tar czf maildir.tar.gz /var/vmail

如果是 系统用户 mbox:

tar czf mail.tar.gz /var/spool/mail /home

3. 备份配置

tar czf mail-config.tar.gz /etc/postfix /etc/dovecot

4. 备份账号信息

  • MySQL:
mysqldump -u root -p maildb > maildb.sql
  • 系统用户:
getent passwd | grep vmail > users.txt

三、新服务器安装(CentOS)

1. 安装相同邮件组件

yum install postfix dovecot mariadb

2. 同步配置文件

scp mail-config.tar.gz root@new-server:/tmp
tar xzf mail-config.tar.gz -C /

3. 恢复邮件数据

tar xzf maildir.tar.gz -C /
chown -R vmail:vmail /var/vmail

4. 恢复数据库

mysql -u root -p maildb < maildb.sql

四、域名与解析切换

1. 修改 MX 记录

将域名 MX 指向新服务器 IP
(建议 TTL 提前调小,如 300 秒)

2. 同步 DKIM / SPF

  • 复制 /etc/opendkim/keys
  • 或重新生成 DKIM 并改 TXT 记录

五、测试与切换

1. 启动服务

systemctl start postfix dovecot

2. 发信测试

echo "test" | mail -s "test" user@example.com

3. 观察日志

tail -f /var/log/maillog

六、可选:在线迁移(不停机)

  • 老服务器用 rsync 定期同步邮件
rsync -avz /var/vmail/ new:/var/vmail/
  • 最后切换 MX 并做最后一次 rsync

七、常见坑提醒

  • 权限问题(vmail uid 不一致)
  • SELinux 导致无法读邮件
  • DKIM 私钥未同步
  • 防火墙未开放 25/143/993

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 用的什么邮件系统(Postfix+Dovecot?云邮箱?)
  • 是否用虚拟用户

我可以给你更精确的迁移命令。

0 踩