排查无法访问的实例的问题
如果无法通过 SSH 或 RDP 访问 Windows 实例,您可以捕获实例的屏幕截图并将其作为图像进行查看。这可以让您了解实例的状态,更快地处理问题。您还可以在运行 Windows Server 2008 或更高版本的实例上使用 EC2 Rescue,从脱机实例收集和分析数据。
有关对无法访问的 Linux 实例进行问题排查的信息,请参阅排查无法访问的实例的问题。
如何获取无法访问的实例的屏幕截图
您可以在实例运行时或崩溃后获取其屏幕截图。屏幕截图不会产生数据传输费用。生成的图像为 JPG 格式,大小不超过 100 kb。
所有实例都支持此功能,但以下除外:
-
裸机实例(以 .metal 结尾的实例类型)
-
实例正在使用 NVIDIA GRID 驱动程序
-
由基于 Arm 的 Graviton 处理器支持的实例
以下区域提供此功能:
-
亚太地区(香港)区域
-
Asia Pacific (Tokyo) Region
-
亚太区域(首尔)
-
Asia Pacific (Singapore) Region
-
Asia Pacific (Sydney) Region
-
亚太地区 (孟买) 区域
-
US East (N. Virginia) Region
-
美国东部(俄亥俄)区域
-
US West (Oregon) Region
-
US West (N. California) Region
-
Europe (Ireland) Region
-
欧洲(法兰克福)区域
-
Europe (Milan) Region
-
欧洲(伦敦)区域
-
欧洲(巴黎)区域
-
欧洲(斯德哥尔摩)区域
-
欧洲(巴黎)区域
-
South America (São Paulo) Region
-
加拿大 (中部) 区域
-
中东(巴林)区域
-
非洲(开普敦)区域
-
中国(北京)区域
-
中国 (宁夏) 区域
使用控制台获取运行的实例的屏幕截图
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在左侧导航窗格中,选择 Instances (实例)。
-
选择要捕获的实例。
-
依次选择 Actions (操作)、Monitor and troubleshoot (监控和问题排查)、Get instance log (获取实例屏幕截图)。
-
选择 Download (下载),或右键单击图像,以下载并保存该图像。
使用命令行获取运行的实例的屏幕截图
您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2。
-
get-console-screenshot (Amazon CLI)
-
GetConsoleScreenshot(Amazon EC2 查询 API)
对于 API 调用,返回的输出采用 base64 编码。对于命令行工具,系统会为您进行解码。
常见的屏幕截图
您可以根据服务返回的屏幕截图,利用以下信息帮助您对无法访问的实例进行故障排除。
登录屏幕 (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,请创建网络接口并将其连接到实例。对于 EC2 Classic,请启用 DHCP。 |
本地或内部部署网络配置
验证本地网络配置是否阻止访问。尝试连接无法访问的实例所在 VPC 中的其他实例。如果您无法访问其他实例,请联系本地网络管理员确定是否有本地策略限制了访问。
远程桌面服务问题
如果实例在登录时无法访问,可能是因为实例存在远程桌面服务 (RDS) 问题。
远程桌面服务配置 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
配置 | 验证 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RDS 正在运行 | 验证实例上的 RDS 是否在运行。使用 Microsoft 管理控制台 (MMC) 的服务管理单元 (services.msc ) 连接实例。在服务列表中,验证Remote Desktop Services (远程桌面服务) 是否处于正在运行状态。如果不是,请将其开启,然后将启动类型设置为 Automatic。如果使用服务管理单元无法连接到实例,请将根卷从该实例分离并为其创建快照或 AMI,将原始卷作为辅助卷附加到同一个可用区中的其他实例,并修改 Start |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RDS 已启用 |
即使该服务已启动,它也有可能被禁用。将根卷从实例分离并为其创建快照或 AMI,将原始卷作为辅助卷挂载到同一个可用区中的其他实例,然后按照 在具有远程注册表的 EC2 实例上启用远程桌面中的说明,通过修改 Terminal Server (终端服务器) 注册表项来启用该服务。 完成后,请重新将根卷附加到原始实例。有关更多信息,请参阅从 Windows 实例分离 Amazon EBS 卷。 |
较高的 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,然后将根卷作为辅助卷附加到同一个可用区中的其他实例。有关更多信息,请参阅从 Windows 实例分离 Amazon EBS 卷。
警告
如果您的临时实例和原始实例是使用相同的 AMI 启动的,则您必须完成额外步骤,否则在您恢复原始实例的根卷之后,由于磁盘签名冲突,您将无法启动该原始实例。如果您必须使用相同的 AMI 创建临时实例,为了避免磁盘签名冲突,请完成 磁盘签名冲突 中的步骤。
或者,可以为临时实例选择不同的 AMI。例如,如果原始实例使用包含 Windows Server 2008 R2 的 AMI,则使用包含 Windows Server 2012 的 AMI 来启动临时实例。
-
登录实例并从命令提示符运行以下命令,以将
bootstatuspolicy
配置更改为ignoreallfailures
。bcdedit /store
Drive Letter
:\boot\bcd /set {default} bootstatuspolicy ignoreallfailures -
重新将卷附加到无法访问的实例并重新启动实例。
Windows 引导管理器屏幕
控制台屏幕截图服务返回以下截图。

操作系统的系统文件和/或注册表遭到严重损坏。当实例停滞在这一状态时,您应该从最近备份的 AMI 恢复实例或启动一个替代实例。如果您需要访问实例上的数据,请将所有根卷从无法访问的实例上分离并为这些卷创建快照或 AMI,然后将其作为辅助卷附加到同一个可用区中的其他实例。有关更多信息,请参阅从 Windows 实例分离 Amazon EBS 卷。
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 系统工具,以验证文件系统的完整性并修复逻辑文件系统错误。请等待该进程完成。