【问题标题】:GCE Allows Connects from Internal Network Only After RebootGCE 仅允许在重新启动后从内部网络连接
【发布时间】: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 并没有解决问题。

标签: google-compute-engine


【解决方案1】:

嗯,很奇怪,但事实证明,我一直使用 Google 提供的 IP 作为我的 VM 的静态 IP,根本不再工作(或路由?)。希望这对可能遇到此问题的其他人有所帮助,如果您检查了所有内容但仍然无法从外部获得连接,请尝试检查您的静态 IP 是否确实有效。

【讨论】:

  • 你能解释一下,我能做什么“检查静态 IP 工作”甚至修复它吗?我在这里迷路了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-09
相关资源
最近更新 更多