I'm trying to create kvm machine on remote host.
The host is running debian testing.
Did use this command:
virt-install --name debian-test \
--os-type=linux \
--os-variant=debianwheezy \
--cdrom /media/media/software/iso/debian-testing-amd64-netinst-2014-01-16.iso \
--graphics vnc,listen=0.0.0.0,port=20001 \
--disk pool=default,format=raw,size=20 \
--ram 2048 \
--vcpus=2 \
--network bridge=virbr0 \
--hvm \
--virt-type=kvm
But when it is created, it listens on:
=# virsh domdisplay debian-test
vnc://localhost:14101
When I had port=40001 in creation, it was listening on port 34101, so it looks like the port is treated as some kind of offset?! In any way – listen is not being used at all, and being able to connect from localhost is not what I want right now.
What am I doing wrong?
Best Answer
You aren't doing anything wrong. The VNC protocol specifies that the "port" isn't actually a port, but an offset from 5900, the default VNC port.
Thus
localhost:0
would connect to port 5900,localhost:1
would connect to port 5901, etc.By default, libvirt only binds VNC listeners to localhost, regardless of what you specify on the command line. To change this, you need to edit the appropriate option in
/etc/libvirt/qemu.conf
.Make sure to reload or restart libvirtd after making this change.