迁移 Debian 邮件服务器是一项系统工程,涉及系统配置、邮件数据、用户账户、DNS 记录等多个方面。下面给你一套完整、可操作的迁移流程,适用于常见场景(Postfix + Dovecot + MySQL/本地用户)。
先确认当前服务器使用的组件:
dpkg -l | grep -E "postfix|dovecot|mysql|mariadb|spamassassin|clamav"
常见组合:
在新 Debian 服务器上:
apt update
apt upgrade
安装基础组件(示例):
apt install postfix dovecot-core dovecot-imapd dovecot-pop3d \
dovecot-mysql mariadb-server
✅ 顺序很重要,避免邮件丢失
旧服务器:
tar czf postfix.tar.gz /etc/postfix
新服务器:
tar xzf postfix.tar.gz -C /
检查关键文件:
postconf -n
tar czf dovecot.tar.gz /etc/dovecot
新服务器解压并校验:
dovecot -n
导出数据库:
mysqldump -u root -p mailserver > mailserver.sql
新服务器导入:
mysql -u root -p mailserver < mailserver.sql
确认:
SELECT * FROM users LIMIT 5;
常见路径:
/var/mail/vhosts//home/vmail//var/spool/mail/查看 Dovecot 配置:
grep mail_location /etc/dovecot/dovecot.conf
在旧服务器执行:
rsync -avz --delete /var/vmail/ root@new_server:/var/vmail/
保持权限:
rsync -avz --delete --numeric-ids /var/vmail/ root@new_server:/var/vmail/
新服务器:
chown -R vmail:vmail /var/vmail
chmod -R 700 /var/vmail
rsync -avz /etc/passwd /etc/shadow /etc/group root@new:/etc/
⚠️ 谨慎操作,建议只迁移邮件相关用户
doveadm auth test user@example.com
修改本地 /etc/hosts:
新服务器IP mail.example.com
测试发送和接收邮件。
ss -lntp | grep -E "25|110|143|465|587|993"
telnet localhost 25
例如:
mail.example.com 300 A 旧IP
example.com. MX 10 mail.example.com.
rsync -avz --delete /var/vmail/ root@new:/var/vmail/
旧服务器:
postqueue -p
必要时手动转发。
确认:
✅ 检查:
--deletedovecot -n
postconf -n
查看日志:
tail -f /var/log/mail.log
如果你愿意,可以告诉我:
我可以给你一份完全针对你环境的迁移方案。