# Enabling VNC on Existing KVM Instances

This article outlines the steps needed to enable VNC on existing virtual machines.

## KVM

### Step 1 - Shutdown the Instance

SSH into the host where the virtual machine of interest resides. To shut down the virtual machine gracefully, invoke the following command on the terminal:

{% tabs %}
{% tab title="Bash" %}

```bash
virsh shutdown test-vm
```

{% endtab %}
{% endtabs %}

where test-vm is the name of the virtual machine.

Check to see if the instance is in the shut off state by invoking the following:

{% tabs %}
{% tab title="Bash" %}

```bash
virsh list --all
```

{% endtab %}
{% endtabs %}

You may also SSH into the instance and power off the instance from the terminal.

If all else fails, you may want to shutdown the instance ungracefully.

{% hint style="warning" %}
**Warning**

This is the equivalent of pulling the power cord
{% endhint %}

{% tabs %}
{% tab title="Bash" %}

```bash
virsh destroy test-vm
```

{% endtab %}
{% endtabs %}

### Step 2 - Edit the Virtual Machine's XML Configuration

After verifying that the instance is shut off, open the instance's XML configuration:

{% tabs %}
{% tab title="Bash" %}

```bash
virsh edit test-vm
```

{% endtab %}
{% endtabs %}

Add the following inside the `<devices>` element:

It should look similar to this:

{% tabs %}
{% tab title="Bash" %}

```bash
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'>
  <listen type='address' address='127.0.0.1'/>
  </graphics>
```

{% endtab %}
{% endtabs %}

### Step 3 - Start the Instance

Start the instance after saving the configuration:

{% tabs %}
{% tab title="Bash" %}

```bash
virsh start test-vm
```

{% endtab %}
{% endtabs %}

To verify whether the configuration succeeded, run the following on the terminal:

{% tabs %}
{% tab title="Bash" %}

```bash
virsh vncdisplay test-vm
```

{% endtab %}
{% endtabs %}

You should see something similar to this:

{% tabs %}
{% tab title="Bash" %}

```bash
root@localhost:~# virsh vncdisplay test-vm
127.0.0.1:0
```

{% endtab %}
{% endtabs %}
