Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

对无法访问的实例进行故障排除

如果您无法通过 SSH 或 RDP 访问您的实例,您可以捕获实例的屏幕截图并将其作为图像查看。这可以让您了解实例的状态,更快地处理问题。

此屏幕截图不会产生数据传输费用。生成的图像为 JPG 格式,大小不超过 100kb。

如何捕获无法访问的实例的屏幕截图

访问实例控制台

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在左侧导航窗格中,选择 Instances

  3. 选择要捕获的实例。

  4. 选择 ActionsInstance Settings

  5. 选择 Get Instance Screenshot

右键单击图像,以下载并保存该图像。

使用命令行捕获屏幕截图

您可以使用以下任一命令。返回的输出采用 base64 编码。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

对于 API 调用,返回的内容采用 base64 编码。对于命令行工具,系统会为您进行解码。

常见的屏幕截图

您可以根据服务返回的屏幕截图,利用以下信息帮助您对无法访问的实例进行故障排除。

登录屏幕 (Ctrl+Alt+Delete)

控制台屏幕截图服务返回以下截图。

 登录屏幕

如果实例在登录时无法访问,可能是因为网络配置或 Windows 远程桌面服务存在问题。如果某个进程占用了大量 CPU,实例也可能没有响应。

网络配置

使用以下信息验证您的 AWS、Microsoft Windows 和本地 (或内部) 网络配置是否阻止了对实例的访问。

AWS 网络配置

配置 验证
安全组配置 验证端口 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,请创建网络接口将其连接到实例。对于 EC2 Classic,请启用 DHCP。

本地或内部网络配置

验证本地网络配置是否阻止访问。尝试连接无法访问的实例所在 VPC 中的其他实例。如果您无法访问其他实例,请联系本地网络管理员确定是否有本地策略限制了访问。

远程桌面服务问题

如果实例在登录时无法访问,可能是因为实例存在远程桌面服务 (RDS) 问题。

远程桌面服务配置

配置 验证
RDS 正在运行 验证实例上的 RDS 是否在运行。使用 Microsoft 管理控制台 (MMC) 的服务管理单元 (services.msc) 连接实例。在服务列表中,验证远程桌面服务是否处于 Running 状态。如果不是,请将其开启,然后将启动类型设置为 Automatic。如果使用服务管理单元无法连接到实例,请将根卷从该实例分离并为其创建快照或 AMI,将原始卷作为辅助卷挂载到同一个可用区中的其他实例,并修改 Start 注册表项。完成后,请重新将根卷挂载到原始实例。有关分离卷的更多信息,请参阅 从实例断开 Amazon EBS 卷
RDS 已启用 即使该服务已启动,它也有可能被禁用。将根卷从实例分离并为其创建快照或 AMI,将原始卷作为辅助卷挂载到同一个可用区中的其他实例,然后按照以下文章中的说明,通过修改 Terminal Server 注册表项来启用该服务: 完成后,请重新将根卷挂载到原始实例。有关分离卷的更多信息,请参阅 从实例断开 Amazon EBS 卷

高 CPU 使用率

使用 Amazon CloudWatch 检查您实例上的 CPUUtilization (Maximum) 指标。如果 CPUUtilization (Maximum) 的值比较大,请等待 CPU 使用率下降后尝试重新连接。CPU 使用率高可能由以下原因导致:

  • Windows 更新

  • 安全软件扫描

  • 自定义启动脚本

  • 任务计划程序

有关 CPUUtilization (Maximum) 指标的更多信息,请参阅 Amazon CloudWatch 用户指南 中的获取指定 EC2 实例的统计数据。有关其他故障排除提示,请参阅 Windows 启动后,CPU 使用率短时增高

恢复控制台屏幕

控制台屏幕截图服务返回以下截图。

 恢复控制台屏幕截图

如果 bootstatuspolicy 未设置为 ignoreallfailures,操作系统可能启动至恢复控制台,并停滞在这一状态。请按照以下步骤将 bootstatuspolicy 配置更改为 ignoreallfailures

默认情况下,AWS 提供的公用 Windows AMI 的策略配置设置为 ignoreallfailures

  1. 停止无法访问的实例。

  2. 创建根卷的快照。根卷是作为 /dev/sda1 挂载到实例的。

    将根卷从无法访问的实例分离并为其创建快照或 AMI,然后将根卷作为辅助卷挂载到同一个可用区中的其他实例。有关更多信息,请参阅 从实例断开 Amazon EBS 卷

    警告

    如果您的临时实例与原始实例基于相同的 AMI,则您必须完成额外的步骤,否则在您恢复原始实例的根卷之后,由于磁盘签名冲突,您将无法启动原始实例。或者,可以为临时实例选择不同的 AMI。例如,如果原始实例使用包含 Windows Server 2008 R2 的 AMI,则使用包含 Windows Server 2012 的 AMI 来启动临时实例。如果您必须基于同一 AMI 创建临时实例,请参阅 远程桌面无法连接到远程计算机 中的第 6 步,以避免磁盘签名冲突。

  3. 登录实例并从命令提示符执行以下命令,以将 bootstatuspolicy 配置更改为 ignoreallfailures

    Copy
    bcdedit /store Drive Letter:\boot\bcd /set {default} bootstatuspolicy ignoreallfailures
  4. 重新将卷挂载到无法访问的实例并重新启动实例。

Windows 引导管理器屏幕

控制台屏幕截图服务返回以下截图。

 Windows 引导管理器屏幕

操作系统的系统文件和/或注册表遭到严重损坏。当实例停滞在这一状态时,您应该从最近备份的 AMI 恢复实例或启动一个替代实例。如果您需要访问实例上的数据,请将所有根卷从无法访问的实例上分离并为这些卷创建快照或 AMI,然后将其作为辅助卷连接到同一个可用区中的其他实例。有关更多信息,请参阅 从实例断开 Amazon EBS 卷

Sysprep 屏幕

控制台屏幕截图服务返回以下截图。

 Sysprep 屏幕

如果您没有使用 EC2Config 服务调用 sysprep.exe,或者操作系统在运行 Sysprep 时出现故障,您可能会看到此屏幕。要解决此问题,请参阅 使用 Sysprep 创建标准 Amazon 系统映像 (AMI)

Getting Ready 屏幕

控制台屏幕截图服务返回以下截图。

 Getting Ready 屏幕

反复刷新实例控制台屏幕截图服务,验证环形进度条是否转动。如果环形进度条转动,请等待操作系统启动。您也可以使用 Amazon CloudWatch 查看您实例上的 CPUUtilization (Maximum) 指标,以确认操作系统是否处于活动状态。如果环形进度条不转,则实例可能停滞在启动过程。重启实例。如果重新启动未能解决问题,请从最近备份的 AMI 中恢复实例或启动一个替代实例。如果需要访问实例上的数据,请将根卷从无法访问的实例中分离,并为其创建快照或 AMI。然后,将根卷作为辅助卷连接到同一个可用区中的其他实例。有关 CPUUtilization (Maximum) 的更多信息,请参阅 Amazon CloudWatch 用户指南 中的获取指定 EC2 实例的统计数据

Windows 更新屏幕

控制台屏幕截图服务返回以下截图。

 Windows 更新屏幕

Windows 更新进程正在更新注册表。请等待更新完成。请勿在更新期间重新启动或停止实例,因为这可能会导致数据损坏。

注意

在更新时,Windows 更新进程会占用服务器上的资源。若您频繁遇到这一问题,可以考虑使用速度更快的实例类型和 EBS 卷。

Chkdsk

控制台屏幕截图服务返回以下截图。

 Chkdsk 屏幕

Windows 正在驱动器上运行 chkdsk 系统工具,以验证文件系统的完整性并修复逻辑文件系统错误。请等待该进程完成。