linux – 如何找到kvm guest虚拟机的VNC UI的屏幕(以及端口)?或者如何分配它

是否有一种直接的方法来查找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
}

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...