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