【发布时间】:2015-02-21 02:19:45
【问题描述】:
我已经使用 GCE 大约一年了,之前没有遇到过这个问题。 VM 是 CentOS,在 http、smpt、pop3、pop3s 和其他一些上运行服务。它还分配了一个静态 IP 地址。
今天早上,VM 已重新启动,当它重新启动时,没有任何外部连接通过。 GCE 防火墙规则没有改变:
Ubuntu:~$ gcloud compute firewall-rules list
NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS
default-allow-http default 0.0.0.0/0 tcp:80 http-server
default-allow-https default 0.0.0.0/0 tcp:443 https-server
default-allow-internal default 10.0.0.0/8 tcp:1-65535,udp:1-65535,icmp
default-ssh default 0.0.0.0/0 tcp:22
http2 default 0.0.0.0/0 tcp:80
https default 0.0.0.0/0 tcp:443
msa default 0.0.0.0/0 tcp:587
pop3 default 0.0.0.0/0 tcp:110
pop3s default 0.0.0.0/0 tcp:995
smtp default 0.0.0.0/0 tcp:25
smtps default 0.0.0.0/0 tcp:465
我关闭了 VM,创建了一个新的临时 VM,并将启动磁盘从 VM 挂载到临时 VM 中以读取日志文件,但没有发现任何错误,看来一切正常启动。
我在某处读到,有一次 iptables 意外创建了一些限制性规则,我注意到 iptables 确实在运行(虽然它可能一直在运行,但不确定),所以我禁用了它.
本地服务似乎正在监听:
[root@]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
我可以通过内部网络从临时 VM 连接:
[repair ~]$ telnet 10.240.26.51 995
Trying 10.240.26.51...
Connected to 10.240.26.51.
Escape character is '^]'.
^]
因此,通过内部网络连接可以正常工作,但通过静态 IP 从外部任何地方连接都不起作用。关于我可能错过的任何想法? 1)服务似乎正在服务器上侦听,2)服务器防火墙(现在)应该关闭,虽然之前是打开的,3)GCE 防火墙规则应该允许外部流量,4)但是没有骰子连接,不是甚至使用:gcloud compute ssh
【问题讨论】:
-
有趣的是:在我创建的临时虚拟机中,使用相同的 GCE 防火墙规则,我安装并启动了 apache,我可以从外部 IP 访问它。然后我想知道它是否与我的 VM 的静态 IP 有关(尽管我已经使用这个静态 IP 一年了,没有任何问题)。我用一个新的静态 IP 重新启动了我的虚拟机,现在一切正常,我可以连接到来自外界的所有服务。为什么我的旧静态 IP 不再工作了??
-
有一个类似的问题,我可以从外部在静态 IP 上 ping 实例,但无法连接,例如通过“nc”。可以从控制台通过 Browser-SSH 登录。
-
切换回使用临时 IP 并没有解决问题。