Enabling Virtio RNG

Linux

Virtio RNG is a paravirtualized random number generator. Virtio RNG providesrandom numbers from an entropy pool generated by the host machine of yourvirtual machine (VM) instance. The entropy pool collects random bits ofinformation from the system and uses that information to generate truly randomnumbers, which you can use for sensitive information, such as SSH keys or uniqueIDs.

Before you begin

Limitations

  • Virtio RNG is not available for Windows images.
  • By default, Compute Engine VMs use Virtio RNG instead of a daemonto refill the guest entropy pool. If you prefer to usean entropy gathering daemon instead of or along with Virtio RNG, youmust install one. For an example of an entropy gathering daemon, see therng-tools documentation.

Checking if Virtio RNG is enabled

Note: Virtio RNG comes pre-enabled on all Linux VMs.

You can check whether Virtio RNG is enabled on your VM by running the followingcommand:

lsmod | grep rng

When Virtio RNG is enabled, your output is similar to the following:

virtio_rng             16384  0rng_core               16384  2 virtio_rngvirtio_ring            28672  4 virtio_rng,virtio_scsi,virtio_pci,virtio_netvirtio                 16384  4 virtio_rng,virtio_scsi,virtio_pci,virtio_net

Testing Virtio RNG

You can test Virtio RNG by using the/dev/random device.

Note: Testing is not supported on SLES 15 for SAP.
  1. Connect to the VM by using SSH. For example, you can use thegcloud CLI to connect:

    gcloud compute sshVM_NAME

    ReplaceVM_NAME with the name of your VM.

  2. Installrng-tools:

    CentOS

    Use the following command to installrng-tools:

    sudo yum install rng-tools

    Debian

    Use the following command to installrng-tools:

    sudo apt install rng-tools

    Fedora CoreOS

    Use the following command to installrng-tools:

    sudo yum install rng-tools

    RHEL

    Use the following command to installrng-tools:

    sudo yum install rng-tools

    SLES

    Use the following command to installrng-tools:

    sudo zypper install rng-tools

    Ubuntu LTS

    Use the following command to installrng-tools:

    sudo apt install rng-tools

    Some Ubuntu images return aPackage 'rng-tools' has no installationcandidate error. If you receive this error, run the following commands:

    sudo apt updatesudo apt install rng-tools
  3. On the VM, run therngtest command:

    cat /dev/random | rngtest -c 1000

If Virtio RNG isn't enabled, the command doesn't return anything. Ifit is enabled, you receive a response similar to the following:

rngtest 2-unofficial-mt.14..rngtest: starting FIPS tests...rngtest: bits received from input: 20000032rngtest: FIPS 140-2 successes: 1000rngtest: FIPS 140-2 failures: 0rngtest: FIPS 140-2(2001-10-10) Monobit: 0rngtest: FIPS 140-2(2001-10-10) Poker: 0rngtest: FIPS 140-2(2001-10-10) Runs: 0rngtest: FIPS 140-2(2001-10-10) Long run: 0rngtest: FIPS 140-2(2001-10-10) Continuous run: 0rngtest: input channel speed: (min=4.801; avg=7.318; max=7.839)Mibits/srngtest: FIPS tests speed: (min=39.005; avg=69.557; max=72.523)Mibits/srngtest: Program run time: 2880954 microseconds

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-02-18 UTC.