sslh accepts HTTPS, SSH and OpenVPN connections on the same port. This makes it possible to connect to an SSH server or an OpenVPN on port 443 (e.g. from inside a corporate firewall, which almost never block port 443) while still serving HTTPS on that port. or in other words ,
it is a simple script that lets you switch an incoming connection on a single port between distinct SSH and SSL/HTTPS servers. it listens for connections on a port and is able to redirect them either to an HTTPS web server or a SSH server. This lets one setup both a HTTPS web server and a SSH server and access them through the same host+port.
sslh accepts connections in HTTP, HTTPS, SSH, OpenVPN, tinc, XMPP, or any other protocol that can be tested using a regular expression, on the same port. This makes it possible to connect to any of these servers on port 443 while still serving HTTPS on that port.
sslh [-v] [-i] [-V] [-f] [-n] [-F <file>] [-t <timeout>] [-P <pidfile>] -u <username> -p <add> [-p <addr> …] [–ssh <addr>] [–openvpn <addr>] [–tinc <addr>] [–xmpp <addr>] [–http <addr>] [–ssl <addr>] [–tls <addr>] [–anyprot <addr>]
-v: verbose -V: version -f: foreground -n: numeric output -F: use configuration file --on-timeout: connect to specified address upon timeout (default: ssh address) -t: seconds to wait before connecting to --on-timeout address. -p: address and port to listen on. Can be used several times to bind to several addresses. --[ssh,ssl,...]: where to connect connections from corresponding protocol. -F: specify a configuration file -P: PID file. -i: Run as a inetd service.
cyborg@cyborg:/$ sudo sslh --listen 192.168.0.1:443 --ssh 192.168.0.1:22 --ssl 192.168.0.1:4443 [sudo] password for cyborg: