Detect if a VM is running in Compute Engine

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 WMI command-line utility:

     wmic.exe computersystem get model,manufacturer 
  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: