Multiplexing SSH and HTTPS on the same port.

I want to run a secure web server on my web site. This runs on port 443, which is the default port for the https protocol. I don't want to change this port number, because I want to be able to access it from work, and the proxy there will only allow https accesses to the default port number.

I also want to get ssh access to my server from work. Because of the firewall they have set up, the only way I can do this is by using ssh-http-tunnel to connect to an ssh server running on port 443.

That means that I want to run both an https server and an ssh server on the same port. Here is my solution. You just run this server on port 443 instead; it detects whether a client is trying to make an https or ssh connection, and connects the client to the appropriate server.

Actually, it's even better: I can run openvpn on the same port as well! Since openvpn knows how to tunnel through an https proxy, this gives me the choice of connecting via ssh or a VPN.

If you want a version for Windows, you can download the source from here, or a pre-compiled executable from here. If you want to use the pre-compiled executable, you should also download the source code and read the instructions supplied with it. It is a command-line program configured by arguments, so just clicking on an icon will not work.
If you want to run this program as a Windows service, there is a utility called SrvAny downloadable from the Microsoft web site which will convert any Windows program into a service. I have not tried this.

John Williams