如何直接隔离 Google Gmail SMTP 服务器 IP?

如何直接隔离 Google Gmail SMTP 服务器 IP?

我正在使用混合 VPN 执行一些自定义路由,这需要我将每个 Google Gmail SMTP 服务器 IP 添加到路由表中,以便它们通过 VPN 默认网关以外的其他网关。

按照,我可以确定 Google 的一般地址范围,但是我似乎无法直接隔离 SMTP 服务器。奇怪的是,我曾向一家 VPN 公司询问过,他们回复了所有特定的 Gmail SMTP 服务器,但没有解释如何确定这些 IP 地址。

如何通过 shell 指令隔离这些 IP 地址?标准 GNU Linux 或 OS X 方法就可以了。

答案1

请测试一下很多因为它只是一个 Q&D WAG,但我相信这可以满足您的要求:

dig @8.8.8.8 +short  _spf.google.com TXT \
  |awk '
    BEGIN {RS=" " ; FS=":"} ; 
    $1="include" {print $2}
  ' \
  |sed -e '/^\s*$/d' \
  |while read NETBLOCK ; do 
    dig @8.8.8.8 +short "${NETBLOCK}" TXT \
    |awk '
      BEGIN {RS=" " ; FS=":"} ;
      $1 ~ /^ip4/ {print $2} ;
      $1 ~ /^ip6/ {s = ""; for (i = 2; i <= NF; i++) s = s":"$i; print s }
    ' \
  |sed -e 's/^://' ;
done

请注意,Google 将大部分公共分配都放入了 SPF 记录中。这是有道理的,因为它允许他们灵活地添加/删除/移动/更改其出站邮件网关,但可能不如问题作者想要的那么细致。

答案2

您需要做的就是通过 DNS 查找 MX 记录。这会为您提供(当时)Gmail 用于接收邮件的所有服务器的列表。

答案3

  • 可以使用@DTK 的答案找到出站服务器
  • 可以使用@Rex 的答案找到入站服务器

两个答案都是正确的,但不完整。每个答案都只提供特定时间点的服务器。即使一周后,服务器也可能完全不同,因为 Google 经常更换服务器。

真正的解决方案是完全不用担心 Google 的服务器。让邮件服务器为您完成这项工作。(这就是它们的目的。)在“此”网络中放置一个智能主机来中继邮件。通过隧道将 Google 的邮件(*@gmail.com、*@googlemail.com 等)中继到 VPN 后面“该”网络上的另一个智能主机。“该”智能主机完成其工作并解析 Google 域的 MX 并将邮件发送给 Google。

在该配置中,“此”智能主机只需知道 Google 的所有邮件应首先发送到“该”智能主机。两台服务器之间的网络流量均通过隧道传输(可能还通过防火墙),并且是端口 25 上的唯一连接。(由于两台服务器都是“您的”服务器,因此它们甚至可以通过您想要的任何端口进行通信)。

因此,您只需配置任何客户端即可使用“此”智能主机来传递邮件。

使用 Postfix 可以轻松完成此操作(请参阅relay_domains 和 transport_maps 作为开始)。我可以为您提供一个工作配置(VPN 内容除外)。

相关内容