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 -vnc
Parameterabschnitt für Details.