amitbet / vncproxy

An RFB proxy, written in go that can save and replay FBS files
Other
206 stars 45 forks source link

Issue with websockets/noVNC #30

Open lord2y opened 1 year ago

lord2y commented 1 year ago

Hello,

I'm facing an issue with vncproxy version v1.11 and noVNC v1.3.0 when I try to proxy a vnc unix socket from Qemu 6.2.0 running within Ubuntu Jammy. To reproduce, you have to install qemu-system-x86. Then you can fetch a Jammy cloud image from here 1 and run qemu with the following parameters:

    qemu-system-x86_64 -machine accel=kvm,type=q35 \ 
               -cpu host -m 2048 \ 
               -vnc vnc=unix:/var/run/qemu/testing.sock  \ 
               -drive file=jammy-server-cloudimg-amd64.img,format=qcow2,if=virtio \
               -nographic

On the same machine, you can run noVNC, fetched from GitHub 2 - pick the tag you prefer - and, along with it, vncproxy. In my environment, I'm using noVNC tag/v1.3.0. I'm running vncproxy with the following command:

    ./proxy -target /var/run/qemu/testing.sock -wsPort 5980 -tcpPort 5900 -logLevel debug

To expose noVNC, you can use a webserver of choice; in my case, I'm using the following command:

    python3 -m http.server --directory ~/noVNC 6080

At this point, you can point your browser to http://localhost:6080/vnc_lite.html?host=localhost&port=5980&path=testing&encrypt=True.

When I open the browser, noVNC presents the login, but it remains stuck forever;

Screenshot 2022-11-29 at 19-04-21 noVNC

I cannot send any input, whereas if I use Remmina 3 (a vnc client), I can connect and interact with the virtualized operating system without any issues.

As you can see, I'm running vncproxy with -logLevel debug; you'll find attached the log to this issue.

Do you have any idea why it breaks over the WebSocket?

proxy.log