In keeping with our philosophy on free/open-source software, here you may periodically find
a few bits and pieces that we have produced as part of our on-going work and have
had the opportunity to make available for download under an open-source license.
This is a small application for tunnelling an arbitrary TCP socket connection over
HTTP. It can be used, for example, to tunnel traffic out from behind a restrictive
firewall that only allows outgoing HTTP web connections.
NEWS: We are also now offering a commercial HTTP tunneling service
based on this HTTP Tunnel software, called FireDrill.
By using the FireDrill service you remove the need to run your own HTTP Tunnel server and can instead
tunnel all traffic through our servers. As well as the existing freely downloadable Linux/Unix/OSX HTTP
tunneling client the FireDrill service also includes a new client for Microsoft Windows users.
For more information, or to try it out for free, please see the
The latest versions of HTTP Tunnel / FireDrill include support for features such as:
- Tunneling over encrypted SSL sockets.
- Tunneling UDP traffic.
- Running a SOCKS 4/5 proxy server at the client.
- HTTP proxy authentication (basic/digest/NTLM).
- Tunneling through paranoid proxies.
The basic idea is that you run an instance of the HTTP Tunnel application locally
in 'client' mode, that then connects out to another instance that you run at the remote
end of the tunnel in 'server' mode. You then connect to the local client end of the
tunnel with the application whose traffic you wish to tunnel, and all communications
are then wrapped in HTTP. The tunnel may also go via a HTTP proxy, either explicitly
Since all tunneled traffic is routed via the HTTP Tunnel server, a further side effect
of this tunneling is that the client also gains an extra layer of anonymity on the
Internet. This is due to the HTTP Tunnel server acting as a proxy to the client, and
thus making it appear that the clients traffic actually originates from the servers IP
For more information please refer to the documentation included within the archive.
This is the cross-platform library used by both our HTTP Tunnel and FireDrill applications
(see above) to perform their HTTP tunneling. With libhttptun it is possible for any
application that wants to make use of HTTP tunneling to do so quickly and easily.
LibHTTPTun includes support for creating both self-contained full HTTP tunneling clients
and servers, or alternatively the creation and use of so called "socket tunnels". Using socket
tunnels an application can create either a client or server side HTTP tunnel and obtain back a
socket reference (or multiple socket references at the server side). Those socket references can
then be read from and written to just like a normal socket, but all data will be transparently
sent over the HTTP tunnel.
Inside the libhttptun archive you will find directories for both C++ and C# versions
of the library. The C++ version is designed for building and using on Linux, Solaris and
OSX, although it should work just as well on any other POSIX platform. The C# version is
designed for building and using with Mono on
Linux, although it has also been successfully used without modification to the source
within the Windows FireDrill application (built using Microsoft Visual Studio).
As well as the source code for the libhttptun library itself, the archive also contains
a couple of simple example command line applications (testcli.exe and testsvr.exe) that
demonstrate how to use libhttptun in a simple client/server situation.
For more information, including a brief overview of the library API, please refer to
the documentation included within the archive.
Send mail to
firstname.lastname@example.org with questions or comments about this web site.
Last modified: 05/05/2013