- HTTP tunnel
HTTP Tunneling is a technique by which communications performed using various network
protocol s are encapsulated using theHTTP protocol, the network protocols in question usually belonging to theTCP/IP family of protocols. The HTTP protocol therefore acts as a wrapper for a covert channel that the network protocol being tunneled uses to communicate.The HTTP stream with its covert channel is termed an HTTP Tunnel.
HTTP Tunnel software consists of client-server HTTP Tunneling applications that integrate with existing application software, permitting them to be used in conditions of restricted network connectivity including firewalled networks, networks behind proxy servers, and NATs.
Usage
An HTTP Tunnel is used most often as a means for communication from network locations with restricted connectivity – most often behind NATs,
firewall s, orproxy server s, and most often with applications that lack native support for communication in such conditions of restricted connectivity. Restricted connectivity in the form of blocked TCP/IP ports, blocking traffic initiated from outside the network, or blocking of all network protocols except a few is a commonly used method to lock down a network to secure it against internal and external threats.Mechanism
The application that wishes to communicate with a remote host opens an HTTP connection to a mediator server, which acts as a relay of communications to and from the remote host. The application then communicates with the mediator server using
HTTP request s, encapsulating the actual communications within those requests. The mediator server is required to be in a network location with sufficiently unrestricted connectivity.The mediator server unwraps the actual data before forwarding it to the remote host in question. Symmetrically, when it receives data from the remote host, it wraps it in the HTTP protocol before sending it as part of an HTTP response to the application.
In this situation, the application plays the role of a Tunneling Client, while the remote host plays the role of the server being communicated with.
HTTP Tunnel Clients
There are several free/open-source, and commercial HTTP Tunneling client applications that allow even applications that lack native tunneling support to communicate from locations with restricted connectivity.
The free or open-source HTTP Tunneling clients are usually packaged as a pair of applications, one of which performs the role of the mediator server, the other performing the role of the Tunneling client. This requires the user to have access to their own server that they can run the mediator server software on.
The commercial HTTP Tunneling client applications are provided by companies that run their own mediator server farms. They charge for the service provided, with various tiers of service that depend on the bandwidth provided.
Uses of HTTP Tunnel Clients
* Surf the internet and post in forums anonymously by hiding your IP address
* To use applications (games/IM clients/browsers) from behind restrictive firewalls or proxy servers
* To access blocked sites
* To achieve lower gaming pings when ISPs perform 'throttling' or 'packet shaping'List of Clients
Online tools
* [http://en.httptunneling.net httptunneling.net] http tunneling online tools, you can jump the proxy and leave the lan restriction]
Open Source
* [http://desproxy.sourceforge.net/ desproxy] (development discontinued)
* [http://www.nocrew.org/software/httptunnel.html GNU httptunnel]
* [http://myboyfriendisageek.com/2008/symbian/gnu-http-tunnel-s60 GNU httptunnel for Symbian S60]
* [http://www.jcraft.com/jhttptunnel/ jhttptunnel (java based)]
* [http://http-tunnel.sourceforge.net/ httptunnel (php and/or perl)]
* ProxyToolsCommercial
* [http://www.artofping.com PingFu]
* [http://www.HTTP-Tunnelclient.com HTTP-Tunnel Client]
* [http://www.totalrc.net/s2h Socks2http]
* [http://www.umediaserver.net/networksoft/index.html Universal HTTP Tunnel]
* [http://www.jproxy.com/ Universal HTTP transport for all J2EE APIs (JMS, CORBA, EJB, RMI, etc)]
Wikimedia Foundation. 2010.