如何使用libvirt获取VNC端口号?

can*_*an. 11 vnc libvirt port-number

autoport=yes在域("libvirt中的虚拟机")配置文件中设置,因此在运行时自动分配VNC端口.

我需要获取此端口,以便我可以从外部连接到vm,但我找不到合适的API来执行此操作.更好的python因为我正在使用libvirt-python绑定.

liu*_*jun 20

我还没有为VNC端口找到任何API,不确定更新版本的libvirt是否有这个接口?

但是,您可以使用该命令virsh vncdisplay $domainName显示端口.注意:您必须修改/etc/libvirt/qemu.conf启用vnc_listen='0.0.0.0'.


小智 7

没有API来获取VNC端口.您必须获取并解析XML文件以找出该端口.当然,如果客户端被销毁(断电/离线),该端口的值将为-1.

char * virDomainGetXMLDesc (virDomainPtr domain, unsigned int flags)

<domain>
  <devices>
    <graphics type='vnc' port='5900' autoport='yes'/>
  </devices>
</domain>
Run Code Online (Sandbox Code Playgroud)

参考