Detect if a VM is running in Compute Engine

Stay organized with collections Save and categorize content based on your preferences.

This document shows you how to use the metadata server or an operating system tool to detect whether a VM is running in Compute Engine.

Use the metadata server to detect if a VM is running in Compute Engine

Depending on the VM's operating system, use one of the following procedures to send a request to the metadata server and detect if a VM is running in Compute Engine:

Linux VM

  1. From the Linux VM, run the following command:

    curl metadata.google.internal -i
    
  2. Verify that Metadata-Flavor: Google exists in output similar to the following:

    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/
    

    The existence of Metadata-Flavor: Google in the output indicates that a Compute Engine VM sent the request.

Windows VM

  1. From the Windows VM, run the following command:

    curl metadata.google.internal -i
    
  2. Verify that Metadata-Flavor: Google exists in output similar to the following:

    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/
    

    The existence of Metadata-Flavor: Google in the output indicates that a Compute Engine VM sent the request.

Use operating system tools to detect if a VM is running in Compute Engine

Depending on the VM's operating system, use one of the following procedures to use a tool that is specific to the VM's operating system to detect if the VM is running in Compute Engine:

Linux VM

  1. From the Linux VM, run the following dmidecode command:

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

    This dmidecode command directly accesses the System Management BIOS information in /proc/mem.

  2. Verify that Google Compute Engine exists in the output.

Windows VM

  1. From the Windows Command Prompt, run the Microsoft System Information (Msinfo32.exe) tool:

    msinfo32
    

    For more information about the Microsoft System Information (Msinfo32.exe) Tool, including how to export the output as text, see Description of Microsoft System Information (Msinfo32.exe) Tool.

  2. Verify that the System Manufacturer is Google and the System Model is Google Compute Engine.

For information about how to programmatically determine whether a Windows VM is running Compute Engine, see the following: