Guacamole - enable websockets


Today we set up a Guacamole app via AppCenter for testing. We can connect to Windows clients via RDP without problems. Looking at the logs we see:

11:07:05.592 [http-nio-8080-exec-3] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal.

And the performance is quite poor to be honest on 1Gig LAN.

How would we make WebSockets to work?

Also, Guacamole 0.9.13-incubating is 6 years old now. Is there a way to update it e.g. drop newer .war in the docker?


One thing that comes to mind is that websockts require SSL. Make sure that port 443 is open. If you’re using Apache or NGINX for fowarding you probably need to add some configuration for websocket passthrough.

Probably you already gave up or solved, but here is one of my config, which I use with an apache proxy.
So, my schema is this:
Client → Internet → Apache proxy → Guacamole → Windows RDP

The relevant part in the apache config is:

ProxyPass / http://10.X.X.X:8080/guacamole/ flushpackets=on
ProxyPassReverse / http://10.X.X.X:8080/guacamole/
ProxyPassReverseCookiePath /guacamole/ /

<Location /websocket-tunnel>
    Order allow,deny
    Allow from all
    ProxyPass ws://10.X.X.X:8080/guacamole/websocket-tunnel
    ProxyPassReverse ws://10.X.X.X:8080/guacamole/websocket-tunnel


1 Like