[Details] [Description] [Future Development] [Installation] [Configuration]

Descriptive name: HTTP Proxy Tunneler

Summary page: http://sourceforge.net/projects/portmaptunnel/

Description: Allows tunneled connections to Internet resources via TCP/IP over an HTTP Proxy that supports the CONNECT method. Maps a port on the local machine to a destination address. Native Win32 using Delphi 7 and Indy 9. Linux port possible with Kylix.

I have the first phase of this project completed (alpha).  It allows tunneled connections to Internet resources via TCP/IP over an HTTP Proxy.  The HTTP Proxy must support the CONNECT method.  It works by mapping a local port to a destination address and port.  The port is relayed through a HTTP Proxy.  It is a native Win32 (Windows 95 - XP) application developed using Borland Delphi 7 and the open source Indy 9.0.14 library.  Currently uses an XML document to configure application and interface is provided via a popup menu on a try icon. 

This is useful because it allows access to POP3, SMTP, FTP, Telnet and other resources that are normally blocked by connections through an HTTP Proxy.  Some clients have support for HTTP Proxies, but if they do not then they can just point to a local mapped port and tunnel through with this application.  This is transparent to the client application and server.

Future Development:

  1. I would like to add better configuration options (GUI based).
  2. Port the core code into a component to allow HTTP Proxy mapped ports.
  3. Create a service version.
  4. Port to Linux via Kylix.
  5. Logging / filtering and similar features.
  6. Add encrypted tunneling (similar to a VPN).
  7. More robust.
  8. Better error handling.
  9. Better Documentation.
  10. Status screen.


Place the XML file and binary in a directory.   Configure the XML file.  Run the program - optionally configure your system to automatically run the program on boot.

Configuration for httpProxyTunnel:

Configuration is handled through an XML document.  By default an XML document is looked for the the same path and with the same name (except an XML extension) as the executable.  Optionally an XML document can be passed in via command-line, or loaded from the popup menu.

Layout of XML document:

Obviously you shouldn't have more then one entry listening on the same IP / Port combination.

Project hosted by:
SourceForge.net Logo