Google Compute Engine不允许传入的smtp连接

时间:2013-05-29 16:41:23

标签: smtp google-compute-engine

我在谷歌的计算引擎上运行了一个虚拟机(CentOS),一切看起来都非常简单,已经阅读了我能找到的所有文档,但这一件事让我感到高兴。我知道出站的SMTP连接被GCE阻止了,但是从我读过的内容来看应该没问题。但是,我已经正确配置了服务器(我认为)并通过gcutil为SMTP添加了防火墙,但仍然没有骰子:

gcutil addfirewall smtp --description="Incoming smtp allowed." --allowed="tcp:smtp"

这会添加允许SMTP连接的规则。

gcutil listfirewalls

    +------------------------+---------------------------------------+---------+------------+-------------+-------------+
    |          name          |              description              | network | source-ips | source-tags | target-tags |
    +------------------------+---------------------------------------+---------+------------+-------------+-------------+
    | default-allow-internal | Internal traffic from default allowed | default | 10.0.0.0/8 |             |             |
    | default-ssh            | SSH allowed from anywhere             | default | 0.0.0.0/0  |             |             |
    | http2                  | Incoming http allowed.                | default | 0.0.0.0/0  |             |             |
    | pop3                   | Incoming pop3 allowed.                | default | 0.0.0.0/0  |             |             |
    | smtp                   | Incoming smtp allowed.                | default | 0.0.0.0/0  |             |             |
    +------------------------+---------------------------------------+---------+------------+-------------+-------------+

列出了SMTP规则。其他端口工作正常,我可以进入端口80,22和110.但是当试图进入端口25时:

telnet nextcore.com 25
Trying 173.255.112.1...

它无法连接。

连接到虚拟机上的localhost端口25可以正常工作:

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 nextcore.localdomain ESMTP Postfix

我错过了什么?

3 个答案:

答案 0 :(得分:4)

我不确定您在端口25上收听了什么(例如sendmail,postfix等)。我可以确认我也无法通过端口25连接到您的VM,但我可以在端口80上连接。

您可以检查哪些节目正在使用sudo netstat -lpn -A inet监听哪些端口,例如

$ 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:22              0.0.0.0:*               LISTEN      2691/sshd
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      15845/nc
udp        0      0 0.0.0.0:23153           0.0.0.0:*                           2291/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2291/dhclient
udp        0      0 10.87.233.49:123        0.0.0.0:*                           2566/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           2566/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           2566/ntpd

您可能会发现您的邮件程序只在localhost(127.0.0.1)上侦听,或者您在/etc/hosts.allow中缺少某个条目,或者在'/ etc / hosts.deny`中有条目阻止来自本地网络外部的请求。

答案 1 :(得分:1)

你可以看看这个:https://developers.google.com/compute/docs/networking#mailserver 您将看到Google Compute Engine阻止端口25,465和587上的出站连接。 设置后缀以使用GCE的说明也可以在该页面上找到。

答案 2 :(得分:0)

gcutil已弃用。我们鼓励您过渡到使用gcloud compute。 Check the example to allow incoming smtp by gcloud compute

ss弃用了较新操作系统上的netstat check the example to check which process/program is using your port on linux