Como descobrir qual tela (e, portanto, porta) a interface do usuário do VNC para um convidado kvm possui? Ou como atribuí-lo

Como descobrir qual tela (e, portanto, porta) a interface do usuário do VNC para um convidado kvm possui? Ou como atribuí-lo

Existe uma maneira direta de encontrar a tela VNC (ou seja, número da porta menos 5900) à qual um convidado KVM está vinculado?

Todos os meus convidados estão configurados para rodar com o VNC habilitado, mas a ordem em que ocupam as portas é aleatória.

Alternativamente, existe uma forma de atribuí-los na configuração (de convidado ou host), para que cada respectivo convidado ocupe uma porta predefinida?!

Responder1

Já que você está usando libvirt, basta perguntar!

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

(minha correlação particular de nome com a porta de exibição VNC é devido ao uso do Open Nebula)

EDIT: Hoje em dia, você pode usar domdisplay para obter o URI do display, seja VNC ou 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


Aqui está uma linha simples para executar isso para todos os convidados em execução de uma só vez:

for i in $(virsh -q list|awk '{print $2}'|sort); do
  echo -e "\033[01;31m$i\033[00m -> $(virsh vncdisplay $i)"
done

Também transformei isso em uma função que classifica a saída por número de porta:

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
}

Responder2

Eu correria :

ps aux | grep "VM name/config"

Anote o ID do processo e depois

netstat -apn | grep "process ID"

Isso deve mostrar que você está com a porta aberta por esse processo.

Responder3

Para definir a exibição, simplesmente forneça explicitamente a -vnc <ip:display>opção qemu-kvm. Veja opágina de manual para qemu-kvm, especialmente a -vncseção de parâmetros para obter detalhes.

informação relacionada