Ubuntu 邮件服务器迁移是一个系统工程,涉及系统配置、邮件数据、域名解析和用户体验等多个方面。迁移的核心原则是:先备份,再做增量同步,最后切换解析。
以下是通用的迁移步骤和核心配置说明,假设是从一台 Ubuntu 服务器迁移到另一台 Ubuntu 服务器(例如更换云服务商或升级系统)。
在新服务器上安装与旧服务器相同的邮件服务软件。
# 通用安装命令示例(以 Postfix + Dovecot 为例)
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d
# 如果需要 Webmail
sudo apt install roundcube
# 如果需要反垃圾(SpamAssassin)或防病毒(ClamAV)
sudo apt install spamassassin clamav-daemon
不要直接全盘复制 /etc,而是选择性地复制关键配置,避免新旧系统差异导致错误。
1. Postfix (MTA) 配置:
# 旧服务器打包
tar czvf postfix-config.tar.gz /etc/postfix/main.cf /etc/postfix/master.cf /etc/postfix/virtual* /etc/aliases
# 传输到新服务器
scp postfix-config.tar.gz user@new-server:/tmp/
# 新服务器解压并覆盖(请先备份新服务器的原配置)
sudo tar xzvf /tmp/postfix-config.tar.gz -C /
2. Dovecot (IMAP/POP3) 配置:
# 旧服务器打包
tar czvf dovecot-config.tar.gz /etc/dovecot/
# 传输
scp dovecot-config.tar.gz user@new-server:/tmp/
# 新服务器解压
sudo tar xzvf /tmp/dovecot-config.tar.gz -C /
3. 数据库(如果使用 MySQL/MariaDB 存储虚拟用户):
mysqldump 导出数据库。邮件数据通常存储在 /var/mail 或 /home 下,或者自定义的 Maildir 目录(如 /var/vmail)。
方法 A:使用 rsync(推荐,支持增量同步) 在旧服务器上执行,先做一次全量同步(服务还在运行,用户仍可收发信):
rsync -avz --progress /var/vmail/ root@new-server:/var/vmail/
注意:如果旧服务器是 /home/username/Maildir,则对应调整路径。
方法 B:使用 imapsync(更安全,模拟用户登录)
如果两台服务器都开着 IMAP 服务,且用户密码已知或可重置,使用 imapsync 是最安全的,因为它处理邮件格式转换和去重。
# 安装 imapsync
sudo apt install imapsync
# 运行迁移(单个用户示例)
imapsync --host1 old-server.com --user1 user@example.com --password1 'pass1' \
--host2 new-server.com --user2 user@example.com --password2 'pass2'
sudo systemctl stop postfix dovecot
rsync -avz --delete /var/vmail/ root@new-server:/var/vmail/
--delete 参数会删除新服务器上多余的文件,保持严格一致。sudo chown -R vmail:vmail /var/vmail
mail.example.com 指向新 IP。/etc/opendkim/keys/),否则邮件会被标记为垃圾邮件。sudo systemctl start postfix dovecot
telnet 或 swaks 测试端口 25 是否通,尝试发送一封测试邮件。hostname -f 返回的是邮件服务器域名(如 mail.example.com)。/etc/hosts 配置正确。ufw:sudo ufw allow Postfix
sudo ufw allow Dovecot
tail -f /var/log/mail.log