加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 17:14:43 所属栏目:Linux 来源:网络整理
导读:是否有一种直接的方法来查找KVM来宾绑定到的VNC屏幕(即端口号减去5900)? 我的所有guest虚拟机都配置为在启用VNC的情况下运行,但它们占用端口的顺序是随机的. 或者,有没有办法在配置(来宾或主机)中分配它们,以便每个相应的来宾将占用预定义的端口?! 解决方
是否有一种直接的方法来查找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 "33[01;31m$i33[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: 33[01;32m%.20s33[00mn" "$PORTNUM" "$i";
  done | sort -n
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读