检测虚拟机是否正在 Compute Engine 中运行


本文档介绍如何使用元数据服务器或操作系统工具检测虚拟机是否正在 Compute Engine 中运行。

使用元数据服务器检测虚拟机是否正在 Compute Engine 中运行

根据虚拟机的操作系统,请按照以下步骤之一向元数据服务器发送请求,并检测虚拟机是否正在 Compute Engine 中运行:

Linux 虚拟机

  1. 从 Linux 虚拟机运行以下命令:

    curl metadata.google.internal -i
    
  2. 验证输出中是否存在如下所示的 Metadata-Flavor: Google

    HTTP/1.1 200 OK
    Metadata-Flavor: Google
    Content-Type: application/text
    Date: Tue, 23 Nov 2021 01:27:16 GMT
    Server: Metadata Server for VM
    Content-Length: 22
    X-XSS-Protection: 0
    X-Frame-Options: SAMEORIGIN
    
    0.1/
    computeMetadata/
    

    如果输出中存在 Metadata-Flavor: Google,则表示 Compute Engine 虚拟机发送了请求。

Windows 虚拟机

  1. 从 Windows 虚拟机运行以下命令:

    curl metadata.google.internal -i
    
  2. 验证输出中是否存在如下所示的 Metadata-Flavor: Google

    HTTP/1.1 200 OK
    Metadata-Flavor: Google
    Content-Type: application/text
    Date: Tue, 23 Nov 2021 20:48:50 GMT
    Server: Metadata Server for VM
    Content-Length: 22
    X-XSS-Protection: 0
    X-Frame-Options: SAMEORIGIN
    
    0.1/
    computeMetadata/
    

    如果输出中存在 Metadata-Flavor: Google,则表示 Compute Engine 虚拟机发送了请求。

使用操作系统工具检测虚拟机是否正在 Compute Engine 中运行

根据虚拟机的操作系统,请按照以下步骤之一使用特定于虚拟机操作系统的工具检测虚拟机是否正在 Compute Engine 中运行:

Linux 虚拟机

  1. 从 Linux 虚拟机运行以下 dmidecode 命令:

    sudo dmidecode -s system-product-name | grep "Google Compute Engine"
    

    dmidecode 命令会直接访问 /proc/mem 中的系统管理服务 BIOS 信息。

  2. 验证输出中是否存在 Google Compute Engine

Windows 虚拟机

  1. 在 Windows 命令提示符中,运行 WMI 命令行实用程序

    wmic.exe computersystem get model,manufacturer
    
  2. 验证 System ManufacturerGoogleSystem ModelGoogle Compute Engine

如需了解如何以编程方式确定 Windows 虚拟机是否正在运行 Compute Engine,请参阅以下内容: