Server is hts. Client is htc. htc supports HTTP proxy and proxy authentication.
# Server listens on port 80, and forwards to local port 22 hts -F 127.0.0.1:22 80 # Client forwards local port 3333 to <server ip>:80 htc [-A user:password] [-P <proxy ip>:port] -F 3333 <server ip>:80 # SSH to server from client. Client just needs to connect to a local port. ssh -p 3333 firstname.lastname@example.org # The whole process is as follows (7001/8002/9003 are arbitrary ports): # # Client Server # 7001 -> 3333 9003 -> 22 # \ / # 8002 --httptunnel-- 80
It seems IPv6 is not supported because I find hts doesn’t listen on IPv6 ports.