无法连接到Google Compute实例上的端口25(传入SMTP)

无法连接到Google Compute实例上的端口25(传入SMTP),smtp,firewall,google-compute-engine,Smtp,Firewall,Google Compute Engine,我正在谷歌计算实例上运行postfix。它正在0.0.0.0:25上侦听,我已打开防火墙上的端口25,但无法从外部连接到它。我已经审查了和,但他们没有解决我的问题。我在Google Compute文档中没有看到任何可以解释这一点的东西 该端口在防火墙上打开: % gcutil --project=XXX getfirewall smtp +---------------+-------------------------------+ | name | smtp

我正在谷歌计算实例上运行postfix。它正在0.0.0.0:25上侦听,我已打开防火墙上的端口25,但无法从外部连接到它。我已经审查了和,但他们没有解决我的问题。我在Google Compute文档中没有看到任何可以解释这一点的东西

该端口在防火墙上打开:

% gcutil --project=XXX getfirewall smtp
+---------------+-------------------------------+
| name          | smtp                          |
| description   | Incoming smtp allowed.        |
| creation-time | 2014-06-08T13:29:16.052-07:00 |
| network       | default                       |
| source-ips    | 0.0.0.0/0                     |
| source-tags   |                               |
| target-tags   |                               |
| allowed       | tcp: 25                       |
+---------------+-------------------------------+
从外面,我可以连接到端口80,这也是开放的

% telnet 108.XXX.XXX.XXX 80
Trying 108.XXX.XXX.XXX...
Connected to 108.XXX.XXX.XXX.
Escape character is '^]'.
GET /
<!DOCTYPE html>
<html ...>
...
</html>Connection closed by foreign host.
postfix正在侦听所有接口:

% gcutil --project=XXX ssh --zone=us-central1-a XXX sudo netstat -lpn -A inet
...
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      10794/master
...
我可以查外部地址

% gcutil --project=XXX ssh --zone=us-central1-a XXX /sbin/ifconfig eth0
...
eth0      Link encap:Ethernet  HWaddr 42:01:0a:XX:XX:XX
          inet addr:10.XXX.XXX.XXX  Bcast:10.XXX.XXX.XXX  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1460  Metric:1
          RX packets:46397953 errors:0 dropped:0 overruns:0 frame:2
          TX packets:34953374 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5031906871 (4.6 GiB)  TX bytes:49375287245 (45.9 GiB)
…并将telnet从机箱连接到其上的端口25:

% gcutil --project=XXX ssh --zone=us-central1-a XXX telnet 10.XXX.XXX.XXX 25
...
Trying 10.XXX.XXX.XXX...
Connected to 10.XXX.XXX.XXX.
Escape character is '^]'.
220 XXX ESMTP Postfix (Debian/GNU)
EHLO localhost
250-XXX
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
非常感谢您提供的任何帮助。

请查看此链接,其中指出Google会阻止或限制Internet与指定端口上的虚拟机之间通过以下所有端口/协议的通信

希望这有帮助


Mary

正如@GregHewgill和@complistic在各自的评论中指出的,是我的ISP或中介没有为端口25路由流量。我无法连接到即时LAN之外的任何端口25。令人尴尬的是,我以前从未注意到这一点

希望任何有类似问题的人都能在像我一样无知地转动轮子之前找到这个问题和答案


谢谢大家的帮助

许多ISP限制您在端口25上建立传出连接的能力,以帮助防止来自僵尸网络的垃圾邮件。您是否已验证可以连接到其他已知良好的SMTP服务器?我同意Greg的说法,这是您最可能遇到的问题。为了解决这个问题,我们在postfix中同时打开了端口25和26,如果用户有问题,我们会让他们更改为26。我们只有很少的用户。你很可能是对的。我发现,我无法连接到gmail.com MX主机。格雷格,我现在确信你和complistic是正确的。如果你想写一个答案,我可以选择它作为对我问题的回应。否则,我可以自己回答,但我想给你这个机会。玛丽,谢谢你的回答。您提供的链接描述了Google从Google Compute实例阻止的流量。我的问题与前往这些实例的流量有关。我已经很熟悉这个链接了,但是谢谢你的指点。我已经为同样的问题挣扎了好几个小时了。我已经读了两遍你的答案,没有意识到我的ISP阻止了我的测试。直到那天结束,我才意识到发生了什么。我也觉得很尴尬
% gcutil --project=XXX ssh --zone=us-central1-a XXX telnet 10.XXX.XXX.XXX 25
...
Trying 10.XXX.XXX.XXX...
Connected to 10.XXX.XXX.XXX.
Escape character is '^]'.
220 XXX ESMTP Postfix (Debian/GNU)
EHLO localhost
250-XXX
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.