Google Compute Engine 无法访问 Gmail

Google Compute Engine 无法访问 Gmail

我每次尝试使用 php 发送邮件时都会收到网络不可达的错误。

 alt2.gmail-smtp-in.l.google.com [2a00:1450:4010:c03::1a] Network is unreachable
 alt3.gmail-smtp-in.l.google.com [2607:f8b0:400e:c03::1a] Network is unreachable

我尝试研究问题可能出在哪里,似乎启用 ipv6 会导致一些问题。因此,我尝试通过执行以下操作在服务器上禁用 ipv6:

我将这些行添加到 sysctl.conf

 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.default.disable_ipv6 = 1
 net.ipv6.conf.lo.disable_ipv6 = 1
 net.ipv6.conf.eth0.disable_ipv6 = 1

并在 /etc/hosts 文件中注释掉 ipv6 地址

我不太确定我是否还遗漏了什么,因为它似乎不起作用!希望有人能帮我解决这个问题!

更新:ifconfig -a

 eth0      Link encap:Ethernet  HWaddr 42:01:0a:f0:64:e1
           inet addr:10.240.100.225  Bcast:10.240.100.225  Mask:255.255.255.255
           UP BROADCAST RUNNING MULTICAST  MTU:1460  Metric:1
           RX packets:2491 errors:0 dropped:0 overruns:0 frame:0
           TX packets:2594 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:301672 (294.6 KiB)  TX bytes:356294 (347.9 KiB)

 lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           UP LOOPBACK RUNNING  MTU:65536  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

更新:

我在尝试发送新邮件时也遇到了其他连接超时错误。但邮件并未到达目标收件人。

 eforward3.registrar-servers.com [38.101.213.206] Connection timed out

更新:

 traceroute -n -T -p 80 38.101.213.206

 traceroute to 38.101.213.206 (38.101.213.206), 30 hops max, 60 byte packets
  1  64.233.174.176  136.720 ms  136.710 ms  136.668 ms
  2  64.233.174.176  136.673 ms  136.670 ms  136.679 ms
  3  64.233.174.176  136.681 ms  136.675 ms 209.85.242.89  136.661 ms
  4  64.233.174.176  136.644 ms 209.85.242.89  136.615 ms 64.233.174.176  136.646 ms
  5  209.85.242.89  163.646 ms 64.233.174.176  136.619 ms 209.85.242.89  163.611 ms
  6  64.233.174.176  136.617 ms  136.493 ms 209.85.242.89  180.663 ms
  7  209.85.242.89  180.643 ms 64.233.174.176  136.448 ms  136.437 ms
  8  64.233.174.176  136.425 ms  136.325 ms  136.310 ms
  9  209.85.242.89  180.503 ms  180.487 ms 64.233.174.176  136.277 ms
 10  209.85.242.89  180.106 ms 64.233.174.176  136.159 ms  136.115 ms
 11  209.85.242.89  153.688 ms 64.233.174.176  136.423 ms  178.986 ms
 12  64.233.174.176  178.866 ms  178.866 ms  178.939 ms
 13  64.233.174.205  136.899 ms  136.894 ms  136.714 ms
 14  154.54.27.161  154.155 ms 209.85.250.62  136.623 ms 154.54.27.161  153.607 ms
 15  209.85.249.4  139.747 ms  139.370 ms 209.85.249.2  136.117 ms
 16  38.88.224.5  139.138 ms  139.234 ms  139.170 ms
 17  154.54.45.30  197.888 ms 154.54.6.105  137.433 ms 154.54.28.62  196.700 ms
 18  154.54.27.237  150.673 ms 154.54.27.169  149.094 ms  149.232 ms
 19  154.54.5.65  195.015 ms 154.54.7.53  195.410 ms 154.54.5.65  194.558 ms
 20  154.54.29.221  196.056 ms  195.939 ms  196.722 ms
 21  154.54.28.62  197.622 ms * *
 22  * * 38.20.62.218  196.091 ms
 23  38.20.62.218  195.919 ms 38.122.18.154  199.002 ms 38.20.62.222  195.254 ms
 24  38.122.18.154  198.058 ms 38.101.213.206  197.167 ms  195.442 ms


 traceroute -n -T -p 25 38.101.213.206
 traceroute to 38.101.213.206 (38.101.213.206), 30 hops max, 60 byte packets
  1  * * *
  2  * * *
  3  * * *
  4  * * *
  5  * * *
  6  * * *
  7  * * *
  8  * * *
  9  * * *
 10  * * *
 11  * * *
 12  * * *
 13  * * *
 14  * * *
 15  * * *
 16  * * *
 17  * * *
 18  * * *
 19  * * *
 20  * * *
 21  * * *
 22  * * *
 23  * * *
 24  * * *
 25  * * *
 26  * * *
 27  * * *
 28  * * *
 29  * * *
 30  * * *

Telnet:我想我还没有安装它。我需要它吗?

答案1

在我管理的一台仅支持 IPv4 的服务器上,我总是在 中看到相同的错误消息/var/log/exim4/mainlog。但这些错误消息是无害的。Exim 意识到该地址不起作用,并在不到一秒钟的时间内切换到使用 IPv4 地址。

托管服务提供商是否首先宣传支持 IPv6?如果没有,您可能根本没有 IPv6 连接。如果 exim 立即切换到 IPv4,邮件仍会顺利送达。

如果您的服务器还没有 IPv6,您可能需要考虑获取它,但这是另一个问题。

但是,您的两个 traceroute 输出指向了真正的问题,它与 IPv6 无关。问题是传出的 SMTP 被阻止,并且在第一跳就被阻止,这意味着它要么被您机器上的防火墙规则阻止,要么被第一个路由器阻止。

端口 80 跟踪路由显示网络行为有些奇怪,因为前 11 个跳数只是重复的两个相同的 IP 地址。这两个 IP 地址属于 Google,所以我猜想如何从 Google Compute 实例发送电子邮件可能和你有关。

答案2

如果您没有 ipv6 连接,则不应允许 exim 尝试使用 ipv6。在您的全局配置部分中,基本上在 ACL 开始之前的任何位置,添加以下内容:

disable_ipv6 = true

相关文件: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-main_configuration.html#SECTalomo 向下搜索disable_ipv6;它们是按字母顺序排列的。

答案3

如果你真的在 Google Compute Engine 上运行,正如@kasperd 在你的问题中添加的那样,那么你应该能够发送电子邮件 -但仅限于 Google 服务器且仅通过 SSL(或者通过 Google 合作伙伴服务,正如 kasperd 的答案中的链接所解释的那样)。

谷歌表示,他们的计算引擎

  • 所有到端口 25 (SMTP) 的传出流量均被阻止。
  • 大多数到端口 465 或 587(通过 SSL 的 SMTP)的传出流量都被阻止。除了已知的Google IP 地址
  • 所有使用 TCP、UDP 和 ICMP 以外的协议的流量都会被阻止。

答案4

值得注意的是,如果您的服务器由云提供商托管,他们可能会在全局(即安全组)或机器级别(即 iptables)应用一些网络限制规则。

例如,尺度道使用安全组(常见问题解答在这里), 尽管数字海洋使用 iptables 规则(步骤 4

相关内容