我正在使用 VPN 执行一些自定义路由,这需要我将每个 Google Gmail SMTP 服务器 IP 添加到路由表中,以便它们通过另一个网关而不是 VPN 的默认网关。
据此,我可以确定 Google 的一般地址范围,但我似乎无法直接隔离 SMTP 服务器。奇怪的是,我有一次向一家 VPN 公司询问,他们回复了所有特定的 Gmail SMTP 服务器,但没有也不会解释如何确定这些 IP 地址。
如何通过 shell 咒语隔离这些 IP 地址?一个标准的 GNU Linux 或 OS X 方法就可以了。
您需要做的就是对 MX 记录进行 DNS 查找。这将为您(当时)提供 Gmail 用于接收邮件的所有服务器的列表。
请对此进行大量测试,因为它只是一个 Q&D WAG,但我相信这可以满足您的要求:
请注意,Google 将大部分公共分配放入 SPF 记录中。这是有道理的,因为它允许他们灵活地添加/删除/移动/更改其出站邮件网关,但可能没有作者想要的问题那么精细。
两个答案都是正确的,但不完整。遵循每个答案只会为您提供该特定时间点的服务器。即使一周后,服务器也可能完全不同,因为谷歌经常更换他们的服务器。
真正的解决方案是完全不用担心 Google 的服务器。让邮件服务器为您完成这项工作。(这是他们打算做的。)在“这个”网络中放置一个智能主机来中继邮件。通过隧道将 Google 的邮件(*@gmail.com、*@googlemail.com、...)中继到 VPN 后面“那个”网络上的另一个智能主机。“那个”智能主机完成了它的工作并为 Google 的域解析 MX 并将邮件传递给 Google。
在那个配置中,“this”smarthost 只需要知道所有 Google 的邮件都应该首先发送到“that”smarthost。两台服务器之间的网络流量都通过隧道传输(并且可能是防火墙),并且是端口 25 上的唯一连接。(由于两者都是“您的”服务器,它们甚至可以通过您想要的任何端口进行通信)。
因此,您只需配置任何客户端以使用“此”智能主机进行邮件传递。
这可以通过 Postfix 轻松完成(请参阅 relay_domains 和 transport_maps 作为开始)。我可以为您提供一个工作配置(VPN 的东西除外)。