Я пытаюсь создать машину kvm на удаленном хосте.
На хосте выполняется тестирование Debian.
Использовал эту команду:
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
Но когда он создается, он слушает:
=# virsh domdisplay debian-test
vnc://localhost:14101
Когда у меня был порт = 40001 при создании, он прослушивал порт 34101, так что похоже, что порт рассматривается как какое-то смещение ?! В любом случае - listen вообще не используется, и возможность подключаться с localhost - это не то, что я хочу прямо сейчас.
Что я делаю не так?
Вы не делаете ничего плохого. Протокол VNC указывает, что «порт» на самом деле не порт, а смещение от 5900, порта VNC по умолчанию.
Таким образом localhost:0
подключится к порту 5900, localhost:1
подключится к порту 5901 и т. д.
По умолчанию libvirt только привязывает слушателей VNC к localhost, независимо от того, что вы указываете в командной строке. Чтобы изменить это, вам нужно отредактировать соответствующий параметр в /etc/libvirt/qemu.conf
.
# VNC is configured to listen on 127.0.0.1 by default.
# To make it listen on all public interfaces, uncomment
# this next option.
#
# NB, strong recommendation to enable TLS + x509 certificate
# verification when allowing public access
#
#vnc_listen = "0.0.0.0"
Обязательно перезагрузите или перезапустите libvirtd после внесения этого изменения.