尝试寻找解决方案已经有一段时间了,但是没有成功,所以我开始吧:
我被赋予了为我们的 2 台 Linux 服务器构建高可用性负载平衡网络集群的任务。我做了一些变通,并设法在两者之间实现了 DNS + SQL + Web 文件夹 + 邮件同步。现在我希望我的服务器 2 只用于邮件发送,服务器 1 只用于网络托管。我使用 WHM 内置帐户转移功能将 1 的所有帐户转移到 2。我创建了 2 个不同的 rsync 作业,用于同步、更新和删除邮件和网站的文件。
现在我能够成功地将 1 个邮件帐户从 1 转移到 2,并且服务器 2 运行正常。我所要做的就是更改 MX 条目以指向新服务器,然后就大功告成了。现在我的问题是,一些客户端已将其邮件软件配置为指向 oldserver.domain.com。出于显而易见的原因,我无法将 oldserver.domain.com 的 (A) 条目指向新服务器。我考虑使用 .foward 文件并将其添加到相关用户的主目录中,但这将非常困难。
所以我的问题是:有没有办法配置 exim,以便它只将邮件转发到新服务器?我需要更改所有用户,以便他们在服务器 2 上使用他们的邮件,而无需执行任何操作。谢谢!
编辑:澄清我的问题
有些客户端的邮件指向 oldserver.xyz 而不是 mail.olderserver.xyz 我想知道我是否可以做些什么来防止修改客户端配置
我还想知道是否有办法找出哪些客户端配置不正确
答案1
最终,您需要清理客户配置,否则当您下次想要切换主机时,它就会受到影响。
在 oldserver.xyz 上运行邮件服务器,将邮件转发到正确的服务器。在日常批处理中使用该服务器的日志来确定哪些客户配置错误。向客户生成通知。
如果您的合同中包含一条条款,允许您在客户配置错误并导致您产生运营费用时收取更多费用,则可以获得加分。:)
答案2
您可以使用 socat 将客户端的连接从 oldserver.xyz 转发到 mail.oldserver.xyz 吗?
因此在 oldserver.xyz 上您可以运行:
socat TCP-LISTEN:25,fork TCP:mail.oldserver.xyz:25
socat TCP-LISTEN:110,fork TCP:mail.oldserver.xyz:110
socat TCP-LISTEN:993,fork TCP:mail.oldserver.xyz:993
socat TCP-LISTEN:995,fork TCP:mail.oldserver.xyz:995
为您想要传递的所有服务。这样您甚至不需要在 oldserver.xyz 上运行邮件服务器。
提取用户名以查看谁需要更新将需要有关他们正在使用哪些服务的更多信息。如果未加密,您可以嗅探它们,或者使用 stunnel 终止 SSL 以访问它。您的 SMTP/POP3/IMAP 服务器日志在这里也应该有用。