httptunnel

What is it

It creates tunnels using http protocol. It is useful to bypass restrictive firewalls or proxies. It uses two techniques, the well known CONNECT technique as well as a BOSH-like implementation. It bypass most firewalls (as requests are valid HTTP requests)  and proxies in their most secure configurations.

How to run

To create a tunnel a user can run httptunnel_server at server where tunnelized service is started and httptunnel_client where the client of the service is used. The client must connect to port where httptunnel_client is started in order to use a tunnelized connection.

1
httptunnel_client -port <local_port> -http_host <http_host> -http_port <http_port> [-proxy_host <proxy_host> -proxy_port <proxy_port>] [-proxy_user  <proxy_user> -proxy_pass <proxy_pass>]

port: where the httptunnel client will listen for tunnelled connections
http_host: the hostname or ip where httptunnel_tunnel is running
http_port: the port where httptunnel_tunnel is running
proxy_host: the proxy host in case of necessary
proxy_port: the proxy port in case of necessary
proxy_user:  the proxy username in case of proxy authentication
proxy_pass: the proxy password in case of proxy authentication

1
httptunnel_server -http_port <http_port> -client_port <client_port> -client_host <client_host>

http_port: the port where httptunnel_server listens
client_port: the port where destination service is bound
client_host: the hostname or ip where destination service is running

Example: Tunnel a ssh connection

Configuration at host (server.com):

1
httptunnel_server -http_port 80 -client_port 22 -client_host 127.0.0.1

Configuration at client:

1
httptunnel_client -port 22 -http_host server.com -http_port 80 -proxy_host proxy.mynet.com -proxy_port 3128

– to start a ssh connection will run at client:

1
ssh 127.0.0.1

which will start a tunneled ssh connection at server.com

Build

At this moment only windows compile system is provided (VS2008) but linux/unix
compile system will be available soon.

Windows

A solution ‘httptunnel.sln’ is provided.
Portable Components C++ library is a prerequisite.
It must be installed at same directory where httptunel is located in and it must be named as ‘poco’.
|
+ – httptunnel
+ – poco

Download

http://diggertunnel.sourceforge.net/