在企业级应用中,邮件系统的稳定性和高可用性至关重要。本文将手把手教你如何在 Ubuntu 系统上搭建一个高可用的 邮件集群,使用业界广泛采用的 Postfix(SMTP 服务器)和 Dovecot(IMAP/POP3 服务器),并实现基本的故障转移能力。即使你是 Linux 新手,也能轻松跟做!

在开始之前,请确保你有以下资源:
我们将使用以下主机名规划:
mail1.example.com —— 主邮件节点mail2.example.com —— 备用邮件节点首先,在两台服务器上执行以下操作:
sudo apt update && sudo apt upgrade -ysudo hostnamectl set-hostname mail1.example.com同样为 mail2 设置 mail2.example.com。
/etc/hosts 文件,添加解析(两台都加):127.0.0.1 localhost192.168.1.10 mail1.example.com mail1192.168.1.11 mail2.example.com mail2在两台服务器上安装邮件服务核心组件:
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d -y安装过程中会提示选择 Postfix 配置类型,选择 “Internet Site”,并输入你的域名(如 example.com)。
为了实现集群数据同步,我们需要让两台服务器访问相同的邮件存储目录。这里推荐使用 NFS 或 GlusterFS。我们以 NFS 为例:
在 mail1 上设置 NFS 服务端:
sudo apt install nfs-kernel-server -ysudo mkdir -p /var/maildatasudo chown nobody:nogroup /var/maildatasudo chmod 777 /var/maildataecho "/var/maildata *(rw,sync,no_subtree_check)" | sudo tee -a /etc/exportssudo exportfs -asudo systemctl restart nfs-kernel-server在 mail2 上挂载 NFS 共享:
sudo apt install nfs-common -ysudo mkdir -p /var/maildatasudo mount mail1:/var/maildata /var/maildata为确保开机自动挂载,编辑 /etc/fstab 添加:
mail1:/var/maildata /var/maildata nfs defaults 0 0编辑 Postfix 配置文件 /etc/postfix/main.cf:
sudo nano /etc/postfix/main.cf修改或添加以下关键参数:
myhostname = mail1.example.com # mail2 上改为 mail2.example.commydomain = example.commyorigin = $mydomaininet_interfaces = allmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainhome_mailbox = Maildir/mail_spool_directory = /var/maildata重启 Postfix:
sudo systemctl restart postfix编辑 Dovecot 配置 /etc/dovecot/conf.d/10-mail.conf:
mail_location = maildir:/var/maildata/%d/%n同时确保权限正确:
sudo chown -R vmail:dovecot /var/maildatasudo chmod -R 770 /var/maildata重启 Dovecot:
sudo systemctl restart dovecot为了让外部邮件服务器知道你的集群地址,需在 DNS 中设置 MX 记录:
example.com. IN MX 10 mail1.example.com.example.com. IN MX 20 mail2.example.com.这样,当 mail1 不可用时,发件方会自动尝试 mail2。
更高级的方案可结合 Keepalived 实现虚拟 IP 漂移,但本教程聚焦基础集群搭建。
创建测试用户:
sudo adduser testuser使用 telnet 或邮件客户端连接测试。也可使用命令行发送测试邮件:
echo "Test email body" | mail -s "Test Subject" testuser@example.com检查 /var/maildata/example.com/testuser/ 目录是否有新邮件。
/var/maildata通过本文,你已成功搭建了一个基于 Ubuntu 的基础 邮件集群,实现了 Postfix 与 Dovecot 的共享存储与基本冗余。虽然这还不是完全自动化的高可用系统,但已具备故障切换能力,适合中小型企业使用。
记住,生产环境中务必加强安全措施,并考虑引入数据库(如 MySQL)管理虚拟用户,以及使用 Roundcube 等 Webmail 提升用户体验。
希望这篇 Linux邮件系统搭建 教程对你有所帮助!如有疑问,欢迎留言交流。
本文由主机测评网于2025-12-23发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251211947.html