迁移 Ubuntu 邮件服务器是一项高风险、强依赖的操作,涉及 邮件数据、用户账号、域名解析、SSL 证书、反垃圾配置 等。下面给你一套通用、可落地的迁移流程,适用于常见组合(Postfix + Dovecot + MySQL/MariaDB + Roundcube / Maildir)。
先确认你当前服务器使用哪些组件:
dpkg -l | grep -E "postfix|dovecot|mysql|mariadb|roundcube"
常见组合:
在新 Ubuntu 服务器上:
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-mysql
# 旧服务器
getent passwd > users.txt
getent shadow > shadow.txt
getent group > groups.txt
⚠️ 不推荐直接覆盖,建议只迁移邮件相关用户。
✅ 最常见、最安全
mysqldump -u root -p mailserver > mailserver.sql
mysql -u root -p mailserver < mailserver.sql
默认路径通常是:
/var/mail/vhosts/
/home/vmail/
在新服务器执行:
rsync -avz --delete \
root@old-server:/var/mail/vhosts/ \
/var/mail/vhosts/
✅ 保留权限、时间戳
✅ 建议多次同步,减少停机时间
rsync -avz root@old:/etc/postfix/ /etc/postfix/
重点检查:
main.cfmaster.cfvirtual_*transport_mapsrsync -avz root@old:/etc/dovecot/ /etc/dovecot/
重点:
dovecot.confconf.d/mail_locationssl_cert / ssl_keyrsync -avz root@old:/etc/letsencrypt/ /etc/letsencrypt/
或新服务器重新申请:
certbot certonly --standalone -d mail.example.com
mysqldump roundcube > roundcube.sql
rsync -avz root@old:/etc/roundcube/ /etc/roundcube/
rsync -avz root@old:/var/lib/roundcube/ /var/lib/roundcube/
MX 记录
mail.example.com A
dig MX example.com
systemctl restart postfix
systemctl restart dovecot
systemctl restart apache2 nginx
检查端口:
ss -lntp | grep -E "25|110|143|465|587|993"
| 问题 | 解决方法 |
|---|---|
| 权限错误 | chown -R vmail:vmail /var/mail |
| 无法登录 | 检查 Dovecot 用户数据库 |
| SSL 报错 | 证书路径、权限 |
| 邮件退回 | MX 未生效 |
| 发信被拒 | SPF / DKIM / DMARC |
你可以直接告诉我:
我可以给你 按你环境定制的迁移命令清单。