Hi All,
I've a use case where I need to expose specific VMs on one of my PVE hosts via VNC (and/or ideally SPICE using the spice-html5 client) via a simple web-based UI (using the current version of noVNC as the web-client here).
I've been able to integrate the necessary VM controls (reboot/shutdown/etc) without issue but I'm having issues on the display side.
Near as I can tell the way the VNC flow SHOULD work is;
I see the websocket open and listen on 0.0.0.0 when I make the vncwebsocket call but when noVNC attempts to connect it says the request was refused. There are no firewalls in the mix so that's not the issue here.
I've tried pretty much every permutation I can think of for parameters to pass to noVNC (ws/wss, password in raw form, password in urlencoded form, ticket as password) but nothing seems to move the needle.
I can't for the life of me find any logging to help to explain what's going on so I'm at a bit of a loss.
Originally I was using PVE 8.3.4 but I have upgraded to 8.4.14 on the off chance it resolved the issue but I'm seeing the same problem still.
I have also attempted to test this using the ProxmoxVNC project which is basically doing what I'm attempting to but that's not working either so it seems like the issue lies on the PVE side (or there have been breaking changes since that project was released).
Any suggestions would be greatly appreciated, even if it's just a pointer to how to get logging from the PVE side for this so I might have some chance of figuring out what's going on.
Thanks
I've a use case where I need to expose specific VMs on one of my PVE hosts via VNC (and/or ideally SPICE using the spice-html5 client) via a simple web-based UI (using the current version of noVNC as the web-client here).
I've been able to integrate the necessary VM controls (reboot/shutdown/etc) without issue but I'm having issues on the display side.
Near as I can tell the way the VNC flow SHOULD work is;
- Call /api2/json/nodes/{node}/qemu/{vmid}/vncproxy passing the "generate-password" parameter set to 1 (I've also tried with and without websocket = 1 in case the doco was wrong. If somebody can tell me if it's possible to directly pass the ticket to a vanilla noVNC instance that'd also be great)
- Call /api2/json/nodes/{node}/qemu/{vmid}/vncwebsocket passing the ticket and port from the previous call.
- Connect using the password from the original API call to the websocket opened by the second API call.
I see the websocket open and listen on 0.0.0.0 when I make the vncwebsocket call but when noVNC attempts to connect it says the request was refused. There are no firewalls in the mix so that's not the issue here.
I've tried pretty much every permutation I can think of for parameters to pass to noVNC (ws/wss, password in raw form, password in urlencoded form, ticket as password) but nothing seems to move the needle.
I can't for the life of me find any logging to help to explain what's going on so I'm at a bit of a loss.
Originally I was using PVE 8.3.4 but I have upgraded to 8.4.14 on the off chance it resolved the issue but I'm seeing the same problem still.
I have also attempted to test this using the ProxmoxVNC project which is basically doing what I'm attempting to but that's not working either so it seems like the issue lies on the PVE side (or there have been breaking changes since that project was released).
Any suggestions would be greatly appreciated, even if it's just a pointer to how to get logging from the PVE side for this so I might have some chance of figuring out what's going on.
Thanks
Last edited: