我在谷歌的计算引擎上运行了一个虚拟机(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
我错过了什么?
答案 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