在Libvirt中更改VNC监听地址,而无需重新启动虚拟机

有没有办法编辑Libvirt-Machine的dynamic地址? 目前看来,当我想编辑监听地址时,我必须先closures对应的虚拟机,然后编辑xml并重新定义域。

我目前正在build立一个小型的Web应用程序(libvirt前端),我想实现一个名为“启用/禁用vnc”的function – 但是,目前看起来似乎不可能,如果唯一的方法是closuresVM。

你必须去QEMU监视器并运行:

change vnc display,options 

其中display<host>:<display_number>unix:<path>none 。 选项是用于显示的选项。 请参阅: https : //qemu.weilnetz.de/doc/qemu-doc.html#sec_005finvocation

例如,要将端口更改为5905,并接受任何主机的VNC连接:

 change vnc :5 

如果您使用的是virsh,请使用“qemu-monitor-command”:

 virsh # qemu-monitor-command <domain> --hmp change vnc :5 

不,看起来不可能dynamic改变VNC显示器。 我不认为KVM支持它,所以libvirt不能提供它。

你可以做的就是把一些东西放在VNC端口前,作为代理,比如socat 。 您将虚拟机设置为无法从外部访问的本地主机地址,然后启用它在外部IP上启动代理。