ControlTech - Statement of Work
We have a distributed device, that runs on linux embedded. This device generally will have an IP address that is not routable via the internet.
We use a system command on this device, to open an SSH tunnel to a linux server that lives in the Azure Cloud. Once this SSH tunnel is open, we can use that ssh tunnel server as a proxy to route to the device.
Once the device is connected to the SSH tunnel server, we use a VNC client to connect to it’s built in VNC server through the tunnel.
We have a desire to enable clients to use noVNC through a web portal to connect to our device. This requires that we proxy the TCP VNC connection to a WebSockets VNC connection. We’ve had success with Websockify in the past proxying a single port, but given the dynamic nature of our portal, we’d need a whole range of ports proxied and ready for use at any given time.
We’ve investigated using NGIX to enable the WebSockets Proxy, but don't know enough about configuration to enable it on our own.
Ubuntu 13.15 LTS Server On Azure Cloud Services
NO X SERVER - You need to configure linux from an SSH Terminal at the command shell.
We need our Ubuntu server configured by installation of new software, to proxy TCP Ports 5000 and up, to a WebSocket counter port. See table below.
TCP 5000 -> WebSocket 5001
TCP 5002 -> WebSocket 5003
TCP 5004 -> WebSocket 5005
You may use NGIX, WebSockify, WSProxy, or even an SSH Tunnel software that supports WebSockets natively - The project will be completed when we can test opening a TCP port from our device to the ssh tunnel, and connecting to the web socket proxy version of that port from the other side.