是否有一种直接的方法来查找KVM来宾绑定到的VNC屏幕(即端口号减去5900)?
我的所有guest虚拟机都配置为在启用VNC的情况下运行,但它们占用端口的顺序是随机的.
或者,有没有办法在配置(来宾或主机)中分配它们,以便每个相应的来宾将占用预定义的端口?!
解决方法
既然你正在使用libvirt,你可以问它!
root@onhost1:~# virsh list Id Name State ---------------------------------- 1 one-34 running 2 one-36 running 3 one-38 running root@onhost1:~# virsh vncdisplay one-34 :34 root@onhost1:~# virsh vncdisplay 1 :34
(我的名字与VNC显示端口的特殊关联是由于使用了开放星云)
编辑:现在,您可以使用domdisplay获取显示的URI,无论是VNC还是Spice:
○ → virsh domdisplay win-michael vnc://127.0.0.1:0 ○ → for dom in $(virsh list --name); do echo -n "$dom: "; virsh domdisplay $dom; done win-michael-m: vnc://127.0.0.1:0
这是一个单行程序,可以同时为所有正在运行的客人执行此操作:
for i in $(virsh -q list|awk '{print $2}'|sort); do echo -e "\033[01;31m$i\033[00m -> $(virsh vncdisplay $i)" done
function vnc-list { for i in $(virsh -q list|awk '{print $2}'|sort); do PORTNUM=$(virsh vncdisplay $i|cut -f 2 -d ':') printf "% 2d: \033[01;32m%.20s\033[00m\n" "$PORTNUM" "$i"; done | sort -n }