Proxmox und VNC-Zugriff

Ich habe neulich meinen Windows Home Server 2011 mit Proxmox virtualisiert, um die vorhandene Hardware etwas flexibler nutzen zu können.

Über das Webinterface ist mittels Java-Plugin ein VNC-Zugriff auf die virtuellen Maschinen möglich, aber leider nicht über einen externen Client und somit auch nicht über iOS und Android.

Nach einigem Herumprobieren habe ich es dann aber doch geschafft – zumindest für die qemu-Maschinen.

So bin ich vorgegangen:

xinetd installieren, falls noch nicht geschehen:
# apt-get install xinetd

Unter /etc/xinetd.d/ eine neue Datei anlegen: z.B. vncprox

Inhalt der Datei /etc/xinetd.d/vncprox in meinem Fall:
service vnc-10100
{
disable = no
socket_type = stream
protocol = tcp
port = 10100
type = UNLISTED
wait = no
user = root
server = /usr/sbin/qm
server_args = vncproxy 100
}

service vnc-10101
{
disable = no
socket_type = stream
protocol = tcp
port = 10101
type = UNLISTED
wait = no
user = root
server = /usr/sbin/qm
server_args = vncproxy 101
}

Bei mir war nach der Installation ein Reboot nötig, aber eigentlich sollte es wohl auch so gehen:
# /etc/init.d/xinetd start

Falls xinetd bereits installiert war oder Änderungen an der Datei /etc/xinetd.d/vncprox vorgenommen wurden, muss xinetd einfach neu gestartet werden:
# /etc/init.d/xinetd restart

Jetzt kommt man z.B. per TigerVNC (1.10) über proxmoxip:10VMID auf die VM und der Console-Aufruf aus dem Webinterface klappt auch noch.
Andere Ports sind natürlich möglich, aber ich finde es so recht übersichtlich und die Ports waren noch frei.

Doch es gibt noch ein Problem:
Ich habe für iOS und Android keinen VNC-Client gefunden, der eine Verbindung mit X509-Zertifikaten unterstützt und da ich eh nur aus dem LAN oder über VPN darauf zugreife, kann ich darauf auch getrost verzichten. Aber wie schaltet man die ab?

Man kann sehen, mit welchen Parametern KVM gestartet wird:
# ps aux|grep kvm

Das liefert unter anderem:
-vnc unix:/var/run/qemu-server/VMID.vnc,x509,password

Unter /etc/pve/nodes/promo/qemu-server liegt je VM eine VMID.conf

Dort kann man wie folgt Parameter für den KVM-Aufruf ergänzen:
args: -PARAMETER1 -PARAMETER2

Also habe ich es (für die VM 100) einfach mal damit versucht:
args: -vnc unix:/var/run/qemu-server/100.vnc,password

Und siehe da – in ps aux taucht jetzt zwar vorne noch der ursprüngliche VNC-Parameter auf, aber hinten dran hängt auch der neue und der letzte gewinnt offensichtlich!

Das führt allerdings dazu, dass der Console-Aufruf aus dem Webinterface in die Hose geht.

Das Passwort muss man leider dann über das Webinterface setzen und es gilt immer nur für eine Verbindung:
VM auswählen->Monitor->set_password vnc PASSWORT

Jetzt kommt man mit (fast?) jedem VNC-Client drauf – fehlt halt das Webinterface.

ABER die manpage für kvm erzählt noch was von „sasl“, daher habe ich es mal so versucht:
args: -vnc unix:/var/run/qemu-server/100.vnc,sasl

Ergebnis: Webinterface-Console funktioniert noch und es klappt auch mit Mocha VNC auf dem iPad.

Einstellungen für Mocha VNC (iOS, Android, Windows Phone) oder Mocha VNC Lite (iOS, Android):
VNC server address: Host-IP
VNC server port: 10VMID
Mac OS X Lion sign on auswählen(!)
VNC password entfällt
Mac OS X user ID: root@pam
Mac OS X password: *****************

Edit: Hier geht es weiter…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.