排查无法访问的实例的问题
可以使用以下方法对无法访问的实例进行故障排除。有关对无法访问的 Linux 实例进行故障排除的信息,请参阅《EC2 用户指南(适用于 Linux)》中的排查无法访问的实例问题。
实例重启
能够重启无法访问的实例对于故障排除和一般实例管理都非常有用。
就像可以通过按下重置按钮来重置计算机一样,您可以使用 Amazon EC2 控制台、CLI 或 API 来重置 EC2 实例。有关更多信息,请参阅 重启实例。
实例控制台输出
控制台输出对于问题诊断是非常有价值的工具。它尤其适合用于排查内核问题和服务配置问题,它们可能会导致实例在 SSH 后台程序启动前终止或变得不可达到。
对于 Windows 实例,实例控制台输出包括最后三个系统事件日志错误。
您可以选择在实例生命周期中随时检索最新的串行控制台输出。仅在基于 Amazon Nitro System 构建的实例上支持此选项。它不是通过 Amazon EC2 控制台受支持的。
注意
仅保存最新发布的 64 KB 输出,可在最近一次发布后至少 1 小时都可以访问。
只有实例的所有人可以访问控制台输出。
使用以下方法之一获取控制台输出。
捕获无法访问的实例的屏幕截图
如果无法通过 RDP 访问实例,可以捕获实例的屏幕截图并将其作为图像查看。该图像可以让您查看实例的状态,更快地处理问题。还可以在运行 Windows Server 2012 或更高版本的实例上使用 EC2 Rescue,并从脱机实例收集和分析数据。
您可在实例运行时或在其崩溃后生成屏幕截图。生成的图像为 JPG 格式,大小不超过 100 kb。屏幕截图不会产生数据传输费用。
限制
以下客户端不支持此功能:
-
裸机实例(类型
*.metal
的实例) -
实例正在使用 NVIDIA GRID 驱动程序
支持的区域
以下区域提供此功能:
-
US East (N. Virginia) Region
-
美国东部(俄亥俄州)区域
-
美国西部(北加利福尼亚)区域
-
美国西部(俄勒冈州)区域
-
非洲(开普敦)区域
-
亚太地区(香港)区域
-
亚太地区(海得拉巴)区域
-
亚太地区(雅加达)区域
-
亚太地区(墨尔本)区域
-
亚太地区(孟买)区域
-
亚太地区(大阪)区域
-
亚太地区(首尔)区域
-
亚太地区(新加坡)区域
-
亚太地区(悉尼)区域
-
Asia Pacific(Tokyo)Region
-
加拿大(中部)区域
-
加拿大西部(卡尔加里)区域
-
中国(北京)区域
-
中国(宁夏)区域
-
欧洲地区(法兰克福)区域
-
欧洲地区(爱尔兰)区域
-
欧洲地区(伦敦)区域
-
欧洲地区(米兰)
-
欧洲地区(巴黎)区域
-
欧洲地区(西班牙)区域
-
欧洲地区(斯德哥尔摩)区域
-
欧洲(苏黎世)
-
以色列(特拉维夫)区域
-
南美洲(圣保罗)区域
-
中东(巴林)区域
-
中东(阿联酋)区域
常见的屏幕截图
可以根据服务返回的屏幕截图,利用以下信息帮助对无法访问的 Windows 实例进行故障排除。
登录屏幕 (Ctrl+Alt+Delete)
控制台屏幕截图服务返回以下截图。
如果实例在登录时无法访问,可能是因为网络配置或 Windows 远程桌面服务存在问题。如果某个进程占用了大量 CPU,实例也可能没有响应。
网络配置
使用以下信息验证您的 Amazon、Microsoft Windows 和本地(或内部部署)网络配置是否阻止了对实例的访问。
Amazon 网络配置 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
配置 | 验证 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
安全组配置 | 验证端口 3389 是否向您的安全组开放。验证您是否连接到正确的公有 IP 地址。如果实例未与弹性 IP 关联,公有 IP 就会在实例停止或启动后发生更改。有关更多信息,请参阅远程桌面无法连接到远程计算机。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPC 配置 (网络 ACL) | 验证您的 Amazon VPC 的访问控制列表 (ACL) 是否阻止访问。有关信息,请参阅 Amazon VPC 用户指南 中的网络 ACL。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPN 配置 | 如果您使用虚拟专用网络(VPN)连接您的 VPC,请验证 VPN 隧道的连通性。有关更多信息,请参阅如何对 Amazon VPC 的 VPN 隧道连通性问题进行故障排除? |
Windows 网络配置 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
配置 | 验证 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Windows 防火墙 | 验证 Windows 防火墙是否阻止与您的实例建立连接。按照远程桌面故障排除部分第 7 项的说明禁用 Windows 防火墙:远程桌面无法连接到远程计算机。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
高级 TCP/IP 配置 (使用静态 IP) | 实例可能因您配置了静态 IP 地址而没有响应。对于 VPC,请创建网络接口并将其连接到实例。 |
本地或内部部署网络配置
验证本地网络配置是否阻止访问。尝试连接无法访问的实例所在 VPC 中的其他实例。如果您无法访问其他实例,请联系本地网络管理员确定是否有本地策略限制了访问。
远程桌面服务问题
如果实例在登录时无法访问,可能是因为实例存在远程桌面服务 (RDS) 问题。
提示
您可以使用 AWSSupport-TroubleshootRDP
运行手册检查和修改可能影响远程桌面协议 (RDP) 连接的各种设置。有关更多信息,请参阅 Amazon Systems Manager Automation 运行手册参考中的 AWSSupport-TroubleshootRDP
。
远程桌面服务配置 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
配置 | 验证 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RDS 正在运行 | 验证实例上的 RDS 是否在运行。使用 Microsoft 管理控制台 (MMC) 的服务管理单元 (services.msc ) 连接实例。在服务列表中,验证Remote Desktop Services (远程桌面服务) 是否处于正在运行状态。如果不是,请将其开启,然后将启动类型设置为 Automatic。如果使用服务管理单元无法连接到实例,请将根卷从该实例分离并为其创建快照或 AMI,将原始卷作为辅助卷附加到同一个可用区中的其他实例,并修改 Start |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RDS 已启用 |
即使该服务已启动,它也有可能被禁用。将根卷从实例分离并为其创建快照或 AMI,将原始卷作为辅助卷挂载到同一个可用区中的其他实例,然后按照 在具有远程注册表的 EC2 实例上启用远程桌面中的说明,通过修改 Terminal Server (终端服务器) 注册表项来启用该服务。 完成后,请重新将根卷附加到原始实例。 |
较高的 CPU 使用率
使用 Amazon CloudWatch 检查您实例上的 CPUUtilization (Maximum) 指标。如果 CPUUtilization (Maximum) 的值比较大,请等待 CPU 使用率下降后尝试重新连接。CPU 使用率高可能由以下原因导致:
-
Windows 更新
-
安全软件扫描
-
自定义启动脚本
-
任务计划程序
有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的获取特定资源的统计信息。有关其他故障排除提示,请参阅 Windows 启动后,CPU 使用率短时增高。
恢复控制台屏幕
控制台屏幕截图服务返回以下截图。
如果 bootstatuspolicy
未设置为 ignoreallfailures
,操作系统可能启动至“Recovery”(恢复)控制台,并停滞在这一状态。请按照以下步骤将 bootstatuspolicy
配置更改为 ignoreallfailures
。
默认情况下,Amazon 提供的公有 Windows AMI 的策略配置设置为 ignoreallfailures
。
-
停止无法访问的实例。
-
创建根卷的快照。根卷是作为
/dev/sda1
附加到实例的。将根卷从无法访问的实例分离并为其创建快照或 AMI,然后将根卷作为辅助卷附加到同一个可用区中的其他实例。
警告
如果您的临时实例和原始实例是使用相同的 AMI 启动的,则您必须完成额外步骤,否则在您恢复原始实例的根卷之后,由于磁盘签名冲突,您将无法启动该原始实例。如果您必须使用相同的 AMI 创建临时实例,为了避免磁盘签名冲突,请完成 磁盘签名冲突 中的步骤。
或者,可以为临时实例选择不同的 AMI。例如,如果原始实例使用适用于 Windows Server 2016 的 AMI,则使用适用于 Windows Server 2019 的 AMI 来启动临时实例。
-
登录实例并从命令提示符运行以下命令,以将
bootstatuspolicy
配置更改为ignoreallfailures
。bcdedit /store
Drive Letter
:\boot\bcd /set {default} bootstatuspolicy ignoreallfailures -
重新将卷附加到无法访问的实例并重新启动实例。
Windows 引导管理器屏幕
控制台屏幕截图服务返回以下截图。
操作系统的系统文件和/或注册表遭到严重损坏。当实例停滞在这一状态时,您应该从最近备份的 AMI 恢复实例或启动一个替代实例。如果您需要访问实例上的数据,请将所有根卷从无法访问的实例上分离并为这些卷创建快照或 AMI,然后将其作为辅助卷附加到同一个可用区中的其他实例。
Sysprep 屏幕
控制台屏幕截图服务返回以下截图。
如果您没有使用 EC2Config 服务调用 Sysprep,或者操作系统在运行 Sysprep 时出现故障,您可能会看到此屏幕。您可以使用 EC2Rescue 重置密码。否则为 使用 Sysprep 创建标准化的 Amazon Machine Image (AMI)。
Getting Ready 屏幕
控制台屏幕截图服务返回以下截图。
反复刷新实例控制台屏幕截图服务,验证环形进度条是否转动。如果环形进度条转动,请等待操作系统启动。您也可以使用 Amazon CloudWatch 查看您实例上的 CPUUtilization (Maximum) 指标,以确认操作系统是否处于活动状态。如果环形进度条不转,则实例可能停滞在启动过程。重启实例。如果重新启动无法解决问题,请从最近备份的 AMI 中恢复实例或启动一个替代实例。如果需要访问实例上的数据,请将根卷从无法访问的实例中分离,并为其创建快照或 AMI。然后,将根卷作为辅助卷附加到同一个可用区中的其他实例。
Windows Update 屏幕
控制台屏幕截图服务返回以下截图。
Windows 更新进程正在更新注册表。请等待更新完成。请勿在更新期间重新启动或停止实例,因为这可能会导致数据损坏。
注意
在更新时,Windows 更新进程会占用服务器上的资源。若您频繁遇到这一问题,可以考虑使用速度更快的实例类型和 EBS 卷。
Chkdsk
控制台屏幕截图服务返回以下截图。
Windows 正在驱动器上运行 chkdsk 系统工具,以验证文件系统的完整性并修复逻辑文件系统错误。请等待该进程完成。
主机发生故障时的实例恢复
如果底层主机上的硬件出现不可恢复性问题,Amazon 可能会预定实例停止事件。我们会通过电子邮件提前通知您这类事件。
恢复发生故障的主机上运行的 Amazon EBS 支持的实例
-
将您实例存储卷上的所有关键数据 Amazon EBS 或 Amazon S3。
-
停止实例。
-
启动实例。
-
恢复所有重要数据。
有关更多信息,请参阅启动和停止 Amazon EC2 实例。
恢复发生故障的主机上运行的实例存储支持的实例
-
从该实例创建 AMI。
-
将映像上传到 Amazon S3。
-
将重要数据备份到 Amazon EBS 或 Amazon S3。
-
终止实例。
-
从 AMI 启动新实例。
-
将所有重要数据恢复到新实例。