我在 Google Cloud VM 上运行了一个 VNC 服务器。它出现了一个奇怪的错误“无法打开 Chrome,内存不足”。所以我重新启动了。
VNC 服务器是一个设置为自动重启的 docker 容器。
现在,无论我“重置”或“停止”实例多少次,SSH 登录都会无限循环并超时。并且 VNC 服务器出现 404 错误。
如果我无法 ssh,我该如何调试?
答案1
检查虚拟机上发生的情况的最简单方法是转到Compute Engine
-> VM instances
-> 单击 NAME_OF_YOUR_VM -> 在VM instance details
查找部分日志并点击Serial port 1 (console)
,你会发现很多日志消息,你应该主要搜索“没有剩余空间”错误。你可以在文档中找到处理“无法连接,正在重试...”错误:
实例的启动磁盘已用尽可用空间。建立连接后,客户机环境会使用当前会话使用的公钥 SSH 密钥更新 ~/.ssh/authorized_keys 文件。如果磁盘已用尽可用空间,则更新失败。要确定磁盘空间问题,检查实例的串行控制台输出并查找“没有剩余空间”错误。
如果您发现“没有剩余空间”错误消息,请按照以下说明操作:
- 调整大小实例的启动永久磁盘以增加其大小。如果实例使用的操作系统映像支持自动调整大小,这是最简单的选择,因为在实例重新启动后,操作系统会自动调整根分区的大小以匹配新的大小。
- 如果你知道哪些文件正在使用磁盘空间,创建启动脚本删除不必要的文件并释放空间以供
实例启动。重新启动实例,以便脚本执行
并清除文件。请务必使用正确的命令并
删除正确的文件。实例启动后,您可以通过 SSH 连接到实例,将启动脚本元
数据项重新设置,以免继续删除文件。- 有关如何访问实例磁盘的信息,请参阅使用 Compute Engine 的一般技巧。
在某些情况下,您应该遵循恢复无法访问的实例或完整的启动磁盘指南:
如果实例的磁盘空间完全不足或者如果它没有运行Linux客户环境,那么自动调整根文件系统的大小是不可能的,即使您增加了支持它的持久磁盘的大小。如果您无法连接到您的实例,或者您的启动磁盘已满并且您无法调整其大小,您必须创建一个新实例并从快照重新创建启动磁盘才能调整其大小。
您可以找到分步说明这里。
如果你的问题与磁盘空间无关你可以尝试用故障排除脚本用于 Compute Engine 识别 Google 提供的基于 Linux 的实例的 SSH 登录/可访问性问题。
此外,您还可以尝试通过串行控制台连接到您的虚拟机通过遵循指导,但请记住:
交互式串行控制台不支持基于 IP 的访问限制(例如 IP 白名单)。如果您在实例上启用交互式串行控制台,客户端可以尝试从任何 IP 地址连接到该实例。
更多详细信息,请参阅文档。
请随时在您的问题中提供更多详细信息,我会更新我的答案。