Wie finde ich heraus, welchen Bildschirm (und damit Port) die VNC-Benutzeroberfläche für einen KVM-Gast hat? Oder wie weise ich sie zu?

Wie finde ich heraus, welchen Bildschirm (und damit Port) die VNC-Benutzeroberfläche für einen KVM-Gast hat? Oder wie weise ich sie zu?

Gibt es eine einfache Möglichkeit, den VNC-Bildschirm (d. h. Portnummer minus 5900) zu finden, an den ein KVM-Gast gebunden ist?

Meine Gäste sind alle für den Betrieb mit aktiviertem VNC konfiguriert, die Reihenfolge, in der sie die Ports belegen, ist jedoch zufällig.

Gibt es alternativ eine Möglichkeit diese in der Konfiguration (des Gastes oder des Hosts) zuzuweisen, so dass der jeweilige Gast einen vordefinierten Port belegt?!

Antwort1

Da Sie verwenden libvirt, können Sie einfach fragen!

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

(meine besondere Zuordnung des Namens zum VNC-Displayport ist auf die Verwendung von Open Nebula zurückzuführen)

BEARBEITEN: Heutzutage können Sie domdisplay verwenden, um die URI des Displays abzurufen, unabhängig davon, ob es sich um VNC oder Spice handelt:

○ → 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


Hier ist eine Einzeiler-Anleitung, um dies für alle laufenden Gäste gleichzeitig auszuführen:

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

Außerdem wurde daraus eine Funktion gemacht, die die Ausgabe nach Portnummer sortiert:

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
}

Antwort2

Ich würde Rennen :

ps aux | grep "VM name/config"

Notieren Sie sich die Prozess-ID und

netstat -apn | grep "process ID"

Dies sollte zeigen, dass Ihr Port durch diesen Prozess geöffnet ist.

Antwort3

Um die Anzeige einzustellen, geben Sie einfach explizit die -vnc <ip:display>Option an qemu-kvm weiter. Siehe dieManpage zu qemu-kvm, insbesondere den -vncParameterabschnitt für Details.

verwandte Informationen