Verbinden auf VM per Spice - Windows

Ploemi

New Member
Mar 26, 2018
6
3
3
32
Hallo ihr lieben,

spice habe ich unter Windows installiert. Das Verbinden auf die VM über den Browser funktioniert einwandfrei.

Jetzt würde ich das gerne, für den Enduser, vereinfachen. Icon auf dem Desktop, Doppelklick und fertig. Unter Linux ist das überhaupt kein Problem, dafür gibt es ja ein Script, allerdings finde ich nichts für Windows (z.B. ein Script für eine Batchdatei oder ähnliches).

Bin ich einfach nur blind oder gibt es wirklich nichts?

Hoffe, dass ihr mir weiterhelfen könnt.

Liebe grüße,
Ploemi
 
Würde etwas gegen einen Linuxclient sprechen. Wir haben beim Kunden auch Proxmoxworkstation laufen, sogar mit Touchscreen ;)
 
Guten Morgen,

kann ich davon ausgehen, dass wenn du mit einer Gegenfrage antwortest, es eher nicht möglich ist?

Ansich spricht nichts gegen einen Linuxclient aber in der Produktion setzen wir Windows ein und es wäre ein unglaublicher Aufwand, die bestehende Infrastruktur, auf Linux umzustellen.

Mir kam kurz die Idee, per RDP auf einen Linuxclient zu connecten und von dort aus Spice zu nutzen aber das zubenutzende Programm läuft nicht unter Linux.
 
kann ich davon ausgehen, dass wenn du mit einer Gegenfrage antwortest, es eher nicht möglich ist?
Weis ich nicht, war noch kein Bedarf da.

Ansich spricht nichts gegen einen Linuxclient aber in der Produktion setzen wir Windows ein und es wäre ein unglaublicher Aufwand, die bestehende Infrastruktur, auf Linux umzustellen.
Kommt darauf an wie man es angeht. Linux einzusetzen ist immer leichter, kenn beide Welten sehr gut. Hier kann man ja das alles schön vorbereiten. Bis hin zum automatischen Rollout mittels PXE. So machen wir das. Halbautomatisch kannst dir auch ne CustomISO bauen und die per PXE oder USB starten und installieren.


Mir kam kurz die Idee, per RDP auf einen Linuxclient zu connecten und von dort aus Spice zu nutzen aber das zubenutzende Programm läuft nicht unter Linux.
Na das vergiss gleich wieder!!!
Du kannst ja auch ganz einfach Proxmox per ADS connecten und der Kunde/Benutzer loggt sich per Proxmoxwebinterface ein. ACLs kannste ja so einrichten das man nur diese VM mit den minimalesten Rechten die für den Betrieb notwendig sind sieht. Dann kannste bei Windows bleiben. Aber ich bin mir sicher das man auch in Windows ein Script programmieren kann wo man das Webinterface nicht benötigt.
 
Ich klinke mich hier mal mit ein. Die Spice Verbindung direkt würde mich auch interessieren, es gibt hier leider User denen ich kein Linux vorsetzen kann. Proxmox arbeitet ja nun mit den Spice Tickets und einem Port auf localhost.
Spice lässt sich wohl (zumindest wenn ich dies richtig in der Doku gelesen habe) auch mit einem Passwort Login (vergleichbar VNC) konfigurieren. Wäre dies mit manuellem Editieren der VM Konfiguration möglich sodass ich im virt-viewer nur spice://host:port eintragen muss und beim Verbinden entsprechender Login kommt?
Wäre dann wohl ein Eintrag der ähnlich diesem aussieht:
Code:
-spice port=3001,disable-ticketing,password=mysecretpassword
 
Guten Morgen,

Weis ich nicht, war noch kein Bedarf da.


Kommt darauf an wie man es angeht. Linux einzusetzen ist immer leichter, kenn beide Welten sehr gut. Hier kann man ja das alles schön vorbereiten. Bis hin zum automatischen Rollout mittels PXE. So machen wir das. Halbautomatisch kannst dir auch ne CustomISO bauen und die per PXE oder USB starten und installieren.

Wir nutzen ebenfalls beides aber an der Stelle an der Spice nötig ist, ist leider kein Verzicht auf Windows möglich. Das erschwert es um einiges.

Weis ich nicht, war noch kein Bedarf da.
Na das vergiss gleich wieder!!!
Du kannst ja auch ganz einfach Proxmox per ADS connecten und der Kunde/Benutzer loggt sich per Proxmoxwebinterface ein. ACLs kannste ja so einrichten das man nur diese VM mit den minimalesten Rechten die für den Betrieb notwendig sind sieht. Dann kannste bei Windows bleiben. Aber ich bin mir sicher das man auch in Windows ein Script programmieren kann wo man das Webinterface nicht benötigt.

Joar, das ist das Einfachste und auch meine Wahl aber es werden sich Icons gewünscht, um es so Benutzerfreundlichen zu machen wie irgend möglich.

Ich klinke mich hier mal mit ein. Die Spice Verbindung direkt würde mich auch interessieren, es gibt hier leider User denen ich kein Linux vorsetzen kann. Proxmox arbeitet ja nun mit den Spice Tickets und einem Port auf localhost.
Spice lässt sich wohl (zumindest wenn ich dies richtig in der Doku gelesen habe) auch mit einem Passwort Login (vergleichbar VNC) konfigurieren. Wäre dies mit manuellem Editieren der VM Konfiguration möglich sodass ich im virt-viewer nur spice://host:port eintragen muss und beim Verbinden entsprechender Login kommt?
Wäre dann wohl ein Eintrag der ähnlich diesem aussieht:
Code:
-spice port=3001,disable-ticketing,password=mysecretpassword

Das wäre ziemlich cool, wenn da so möglich wäre. Werde mich dorthingend mal informieren. Derzeit bastel ich an einem PS-Script in Verbindung mit Invoker-WebRequest. Den Token und das Ticket habe ich bereits erfolgreich "extrahiert". Laut dem Script für Linux,
Code:
curl -f -s -S -k -b "PVEAuthCookie=$TICKET" -H "CSRFPreventionToken: $CSRF" "https://$PROXY:8006/api2/spiceconfig/nodes/$NODE/qemu/$VMID/spiceproxy" -d "proxy=$PROXY" > spiceproxy
muss ich es, theoretisch, nur noch "zusammenbasteln" und es an den virt-viewer übergeben. Hat gestern allerdings nicht wirklich funktioniert.


Liebe Grüße,
Ploemi
 
  • Like
Reactions: fireon
Problem gelöst.
So einfach, dass es fast schon schmerzt.
  1. Per SSH auf den Proxmox verbinden
  2. vim /etc/pve/nodes/[nodename]/qemu-server\[vmid].conf
  3. In der ersten Zeile der .conf steht args (falls nicht, kann man diese ohne weiteres anlegen)
  4. Folgendes hinzufügen -spice port=[beliebigerPort],password=[beliebigesPasswort]
  5. Speichern und ggf. VM neustarten
  6. SPICE auf der Windowsmachine installieren
  7. Verknüpfung zum Desktop hinzufügen
  8. Rechtsklick -> Eigenschaften -> Reiter "Verknüpfung" -> am Ende der Textbox "Ziel" (außerhalb des ") spice://IP:port
  9. Speichern, doppelklicken, Passwort eingeben, fertig
Ich werde mal mit einem Chef sprechen, ob ich unser Powershellscript veröffentlichen darf, falls daran Interesse besteht und jemand es über API lösen möchte.

Ich bedanke mich für eure Antworten und wünsche euch schöne Ostern.
Bestimmt liest man sich wieder ^^

Liebe Grüße,
Ploemi
 
  • Like
Reactions: HBO and fireon
Problem gelöst.
So einfach, dass es fast schon schmerzt.

Hallo,
welches Spice windows exe hast Du den für die Desktop Verknüpfung genommen ?
virt-viewer.exe oder remote-viewer.exe

Bei remote-viewer.exe spice://192.168.1.201:3001

bekomme ich:
upload_2018-3-30_9-0-43.png

Bei virt-viewer.exe spice://192.168.1.201:3001

upload_2018-3-30_8-58-30.png

In der qemu conf habe ich

args: -spice port=3001,disable-ticketing,password=xxxxxx eingetragen

Danke für einen Tip
Gruss Leo
 
Hallo,

tschuldige die späte Antwort, Ostern undso.
Ich nutze die remote-viewer.exe als Verknüpfung auf dem Desktop. Im Tab "Verknüpfung" unter "Ziel:" steht folgendes:
Code:
"PFAD\ZU\remote-viewer.exe" spice://IP:PORT

In der .conf der VM:
Code:
-spice port=[beliebigerPort],password=[beliebigesPasswort]

Das Argument "disable-ticketing" kannst du, bin ich der Meinung, getrost weg lassen. Da wir nicht über den Proxmox direkt connecten sondern über das Interface des Hosts, ist auch keins nötig bzw möglich.
 
Hallo Ploemi

remote-viewer.exe spice://192.168.1.201:3001
mit dem Eintrag args: -spice port=3001,disable-ticketing,password=xxxxxx in der qm conf

hatte ich ja bereits probiert, bekomme da aber den Fehler, das die Verbindung verweigert wird. Ich denke ich muss
in der VM (Debian mit XFCE) noch was installieren ?
Vieleicht muss ich da noch einen Spice Quest Driver in der VM installieren ?
Wenn ich per Proxmox GUI verbinde geht das ja per SPICE proxy.

Danke und Gruss
Leo
 
Hallo Leo,

das kann durchaus möglich sein, wobei Debian diese Dinge eigentlich mitbringt aber es kann nicht schaden, es zu versuchen.

Liebe Grüße,
Ploemi
 
-spice port=
Hallo Ploemi

remote-viewer.exe spice://192.168.1.201:3001
mit dem Eintrag args: -spice port=3001,disable-ticketing,password=xxxxxx in der qm conf

hatte ich ja bereits probiert, bekomme da aber den Fehler, das die Verbindung verweigert wird.
Hi Leo,
riecht so'n bisschen nach Firewall?!

tcpdump ist Dein Freund.

Udo
 
Hallo Udo und Ploemi,
erstmal Danke für die Tipps. Werde morgen weiter probieren.

Gruss Leo
 
Hi Leo,
riecht so'n bisschen nach Firewall?!

tcpdump ist Dein Freund.

Udo

Also in der VM kommt etwas an wenn ich per tcpdump den benutzten port 3001 scanne. Leider sehe ich nichts
im syslog oder sonst irgendwo. Der VGA treiber QXL ist auch da wenn ich ein lspci | grep vga in der VM mache.
Eigentlich sollte doch eine connection refused Meldung (vom windows remote-viewer.exe) irgenwie in den VM logs auftauchen.
Meine VM ist ein Debian 9 mit xfce.
Hatte auch den PVE spice-proxy gestoppt, bringt aber nichts (wird ja in dem Fall auch nicht gebraucht).
Noch etwas, benutze bereits die Version v6.0-256 des windows remote viewers.
Wie gesagt wenn ich per PVE Gui verbinde geht es (wenn ich dann in der qm conf datei den -spice eintrag wieder entferne).

Hat sonst einer eine Idee wo ich noch schauen könnte ?

Danke und Gruss
Leo
 
Hallo,

die oben Beschrieben Möglichkeit ist in der aktuellen 5.3er Version nicht mehr Möglich, weil die Reihenfolge der Argumente beim Starten der VM geändert und die Spice Port Angaben in den -args einfach "ignoriert" werden.

Wer das noch nutzen möchte muss im Moment die VM Manuell Starten wie ich es hier Beschrieben habe:
https://forum.proxmox.com/threads/proxmox-5-3-spice-port-ignored.51388/

Auch ist leider wie es aussieht keine Hilfe vom Hersteller zu erwarten, den die dort Empfohlene Lösung ist nicht Praktikabel!

Ich habe drei PVE Server mit 20+ Windows Client VM's im Einsatz die per BAT Datei von den echten Windows Client mit Port Knocking (knockd unter Linux) gestartet werden und dann direkt den remote-viewer.exe auf das Spice Port ausführt. Das läuft dort seit 5+ Jahren und nun seit dem Update nicht mehr.
 
  • Like
Reactions: Da-Tex
Hallo Guenther,

vielen dank für deine Anmerkung. Ich bin seit Tagen am Verzweifeln!
Allerdings verstehe ich um ehrlich zu sein nicht ganz, was ich manuell konfigurieren muss laut dcsapak.
Wie hast du es schlussendlich gelöst?

Liebe Grüße
 
Hallo Da-Tex,

hast du meinen Initialen Post gesehen?
https://forum.proxmox.com/threads/proxmox-5-3-spice-port-ignored.51388/

Ich habe mir ein bash script gebaut welches VM's die falsch gestartet wurden neu Manuell startet...

Hier der Auszug für eine VM mit der ID 128 welche bei mir das Spice Port 59128 haben soll:
if [ $(netstat -tlnp|grep 59128|wc -l) -le 0 ]
then
echo "restart vm 128"
qm shutdown 128
/usr/bin/kvm -id 128 -name WSW7MMZ -chardev socket,id=qmp,path=/var/run/qemu-server/128.qmp,server,nowait -mon chardev=qmp,mode=control -chardev socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5 -mon
chardev=qmp-event,mode=control -pidfile /var/run/qemu-server/128.pid -daemonize -smbios type=1,uuid=da46a669-****-4f86-b346-54103ff925c6 -smp 2,sockets=1,cores=2,maxcpus=2 -nodefaults -boot menu=on,strict=on,re
boot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg -vnc unix:/var/run/qemu-server/128.vnc,x509,password -no-hpet -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,hv_spinlocks=0x1fff,hv_vapic,hv_ti
me,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,hv_synic,hv_stimer,enforce -m 4096 -spice port=59128,addr=0.0.0.0,disable-ticketing -k de -device pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e -device pci-bri
dge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f -device piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2 -device qxl-vga,id=vga,bus=pci.0,addr=0x2 -chardev socket,path=/var/run/qemu-server/128.qga,server,nowait,id=qg
a0 -device virtio-serial,id=qga0,bus=pci.0,addr=0x8 -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 -spice tls-port=61002,addr=127.0.0.1,tls-ciphers=HIGH,seamless-migration=on -device virtio-seri
al,id=spice,bus=pci.0,addr=0x9 -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 -iscsi initiator-
name=iqn.1993-08.org.debian:01:be92499b2040 -drive if=none,id=drive-ide2,media=cdrom,aio=threads -device ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200 -drive file=/var/lib/datastore2/images/128/
vm-128-disk-1.qcow2,if=none,id=drive-virtio0,format=qcow2,cache=none,aio=native,detect-zeroes=on -device virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100 -netdev type=tap,id=net0,if
name=tap128i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on -device virtio-net-pci,mac=1E:F9:1C:B8:E4:2C,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300 -rt
c driftfix=slew,base=localtime -machine type=pc -global kvm-pit.lost_tick_policy=discard
fi

Wobei der Befehl selbst einfach so erstellt wurde wie im anderen Thread oben verlinkt, also VM Starten und mit
wird bei der vmid auch die Prozess ID Angezeigt und dann mit
ps aux|grep <prozessid>
den Befehl ausgeben und dann den Fett Markierten Teil vom Ende in die Mitte des Befehles verschieben!

Schön ist was anderes aber ich habe bis jetzt keine bessere Lösung gefunden!
 
  • Like
Reactions: Da-Tex
Hallo,

hat geklappt :).
Ich danke dir wie verrückt. Für meine Seite werden ich das noch ganz schön anpassen müssen, aber das sollte jetzt kein Problem mehr darstellen! Es ist schön, endlich eine Lösung zu haben. Wie erwähnt sitze ich seit Montag an diesem Problem!

Nochmals vielen dank!
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!