Unix Like

[Updated] libvirt & qemu change VNC password without restart

文章【libvirt & qemu无需重启(在线)更改VNC密码】已于2019-02-17更新。


有两个方法,一个是通过libvirt的virDomainUpdateDeviceFlags接口,另一个是通过qemu-monitor。

以下把“DOMAIN_NAME”替换为虚拟机的名称,“YOU_NEW_VNC_PASSWORD”替换为你的新密码。

通过virDomainUpdateDeviceFlags接口

使用libvirt管理虚拟机的情况下,这个方法是首选,libvirt官方是不推荐使用了libvirt的情况下操纵qemu-monitor的。

首先编写VNC graphic的XML配置:

注意,使用了current及live标记的情况下,是不能更改监听地址与监听端口的,所以需要运行时修改密码请注意port与address与现配置一致。

virDomainUpdateDeviceFlags函数原型见此:https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainUpdateDeviceFlags

这是PHP调用的例子:

 

使用virsh控制台的,可以通过update-device命令,把前面编写的XML内容保存为文件,例如domain-vnc-graphic.xml:

 

通过qemu-monitor