In the past I have always used virt-manager from linux, often switching to X11 forwarding to natively run the app in Windows because I had always thought that VNC just didn’t work with KVM, despite seeing posts to the contrary on the interwebs. Turns out, the issue is specifically with RealVNC’s (default) settings.
To connect to VNC on a KVM hypervisor, you can find out the port using virsh vncdisplay <machinename> to get the port (e.g. virsh vncdisplay adserver returns 127.0.0.1:3 on my hypervisor – port 3 is what you want to connect to. If the IP of your KVM hypervisor is 192.168.1.5, then VNC to 192.168.1.5:3 will connect you to that virtual machine).
This is, of course, you have the VNC graphics enabled in your XML for the machine. It would look like:
<graphics type='vnc' port='-1' autoport='yes' passwd='YOUR-PASSWORD-HERE' keymap='en-us'>
The password is optional above, as is the keymap.
It works fine in UltraVNC and TigerVNC. The issue with RealVNC is that you have to make 2 changes for it to work properly. On your client, goto Options > Advanced Button > Expert Tab and make sure you have the following values:
FullColour:True PreferredEncoding:Hextile
And voila! You should have some VNC glory to your OS, even if it does not have a desktop GUI running (will give you the text console TTY that is active).