运行时Amazon EC2 Web服务器无法访问

几个星期前,当我访问我的服务器上托pipe的网站时,我有一个“数据库错误”的服务消息。 MySQL似乎因为一些神秘的原因而崩溃了(除了我以外,没有任何访问者)。

我试图通过SSH访问它,发现我无法进入(腻子和Java实用程序)。 Telnet告诉我,端口20-22被closures,我重新启动服务器。 当我现在检查服务器上没有开放的端口,我不能ping通。 我已经删除了弹性IP,并使用公共DNS来检查这些。

我创build了我的服务器的映像,并将其作为新实例启动,但仍然无法访问它 – 接收到相同的错误。

The security group is set to allow 20 0.0.0.0/0 21 0.0.0.0/0 22 (SSH) 0.0.0.0/0 80 (HTTP) 0.0.0.0/0 443 (HTTPS) 0.0.0.0/0 

这里是我使用telnet收到的错误:

 C:\Users\Wes>telnet 54.235.65.140 22 Connecting To 54.235.65.140...Could not open connection to the host, on port 22: Connect failed 

这怎么可能? 如果所有端口都closures,我的服务器如何能够接收启动/停止/重新启动请求? 我如何恢复?

可能发生您的实例处于某种中断状态,并且无法启动。 这将解释无连接问题。

我build议从头创build另一个干净的虚拟机,并将可疑卷作为附加卷附加,以便安装并检查它。 如果主机坏了,我的build议是复制数据并重新开始。

如果所有端口都closures,我的服务器如何能够接收启动/停止/重新启动请求?

使用与来宾机器的TCP / IP通信无法实现虚拟机的检测。 相反,虚拟化平台(通过Amazon内部networking)和操作系统通过虚拟化pipe理程序来处理直接启动/停止/重新启动请求。 设备快照,安全组…也是如此:您的操作系统不需要监听:全部都是在外部完成的。