App - does not seem to work with websockets or video streaming

Regular SSH tunnel works, for both Node-Red, and an IP-camera webinterface with video embedded:

ssh -L 1881:<remote-ip>:80 user@my-node.local

And not surprisingly, so does the Teleport shell:

tsh ssh -L 1881:<remote-ip>:80 user@my-node

But if I want to start an app that does the same thing, the Websockets and video stream does not work:

teleport start --roles=app --app-name=testcamera --app-uri=http://<remote-ip> --token=dogs-are-much-nicer-than-cats --auth-server=teleport.example.com:3080 --insecure --debug

The logs does not say much and in both cases the only error showing up says the same thing:

ERRO [APP:WEB]   Error dialing `:80`: dial tcp :80: connect: connection refused forward/fwd.go:261

Does Teleport not support this, or is it a bug?

Best regards,
Anders

[Teleport version 5.x]

I am in the same situation using also Node-RED.

I could register the app and can connect to the webpage.
But when I look at the web console in the browser I have the following message

Firefox can’t establish a connection to the server at wss://myapp.teleport.domain.com:3080/comms.

Is there any specific settings to do to allow the web socket communication working properly in Teleport ?

Also, locally when I connect to the web app with the LAN IP, it is working fine.

The node joined the cluster using a reverse tunnel.

Any guidance to solve this blocking point is very welcome ! Thank you very much.

I think you’re both correct - websockets don’t work correctly through application access. I’ve submitted a bug report here: Application Access does not support websockets · Issue #5264 · gravitational/teleport · GitHub

With regard to video streaming I would imagine that there is a similar issue. If you’d care to submit a bug report with steps to reproduce that we will take a look too.