AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 633558
Accepted
ylluminate
ylluminate
Asked: 2014-10-05 07:43:32 +0800 CST2014-10-05 07:43:32 +0800 CST 2014-10-05 07:43:32 +0800 CST

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

  • 772

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

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

如何通过 shell 咒语隔离这些 IP 地址?一个标准的 GNU Linux 或 OS X 方法就可以了。

routing
  • 3 3 个回答
  • 1867 Views

3 个回答

  • Voted
  1. Rex
    2014-10-05T07:50:45+08:002014-10-05T07:50:45+08:00

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

    • 2
  2. Best Answer
    DTK
    2014-10-05T08:05:01+08:002014-10-05T08:05:01+08:00

    请对此进行大量测试,因为它只是一个 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
  3. mailq
    2014-10-09T08:09:03+08:002014-10-09T08:09:03+08:00
    • 可以使用@DTK 的答案找到出站服务器
    • 可以使用@Rex 的答案找到入站服务器

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

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

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

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

    这可以通过 Postfix 轻松完成(请参阅 relay_domains 和 transport_maps 作为开始)。我可以为您提供一个工作配置(VPN 的东西除外)。

    • 2

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • 将路由永久添加到 Solaris 10

  • Quagga 套件中的 ./configure --disable-zebra 代表什么?

  • 使用特定接口进行出站连接(Ubuntu 9.04)

  • Linux TC/策略路由工具

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve