几周前,当我访问服务器上托管的网站时,我收到一条服务消息“数据库错误”。看来 MySQL 由于某种神秘原因崩溃了(除了我之外没有访问者)。
我尝试通过 SSH 访问它,但发现无法进入(Putty 和 Java 实用程序都无法进入)。Telnet 告诉我端口 20-22 已关闭,我重新启动了服务器。当我现在检查时,服务器上没有开放端口,我无法 ping 通。我已删除弹性 IP 并使用公共 DNS 来检查这些。
我创建了我的服务器的映像并将其作为新实例启动,但仍然无法访问它 - 收到相同的错误。
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
这怎么可能呢?如果所有端口都关闭了,我的服务器如何接收启动/停止/重启请求?我该如何恢复?
答案1
您的实例可能处于某种故障状态,无法启动。这可以解释无连接问题。
我建议从头开始创建另一个干净的虚拟机,并将可疑卷附加为附加卷,以便您可以安装并检查它。如果主机坏了,我的建议是复制数据并重新开始。
如果所有端口都关闭,我的服务器如何接收启动/停止/重启请求?
虚拟机的仪表化不是通过与客户机的 TCP/IP 通信来实现的。相反,虚拟化平台(通过 Amazon 内部网络)和操作系统通过虚拟化管理程序直接处理启动/停止/重启请求。设备快照、安全组等也是如此:您的操作系统不需要监听:这一切都是在外部完成的。