libconnect home page

This project is hosted by Savannah

What's libconnect?

Libconnect is a simple library wrapper written in assembly language (NASM syntax) that intercepts the calls applications make to establish TCP connections and transparently proxies them as necessary.
Existing applications can use this library without any recompilation or modification by setting the LD_PRELOAD environment variable. Libconnect will be loaded into the process space overriding the 'old' libc connect().

Do I need libconnect?

Web proxy servers are the most common way to allow access between networks, and often to the Internet in a firewalled LAN environment (when there's no NAT support). Unfortunately only few applications know how to 'use' a web proxy to access the big internet; libconnect should help you here.
You can also use this library if you aren't in a LAN but you want to make ssh, telnet, ftp, irc (etc...) sessions without using your real ip address and preserve your anonimity.

What kind of proxy works with this stuff?

Libconnect supports CONNECT and POST proxies; wingates and maybe socks will be supported on request. You can discover if the proxy you want to use is a CONNECT proxy in 2 simple steps:


2002-07-24 - libconnect 0.5.2

This is the complete ChangeLog


Using libconnect is very simple. You just have to load in your LD_PRELOAD environment variable.
I've included a small script to simplify the use of the library, please read the "libconnect" and "libconnect.conf" man pages.

source libconnect -on or . libconnect -on (please note the leading dot)
puts libconnect into your current shell LD_PRELOAD environment and so every application you run will be automatically proxied by the library.

If you want to use libconnect in just a single application you can type: libconnect [application [application arguments]]
for example: libconnect telnet 1234

. libconnect -off or source libconnect -off
will unload the library from the current shell LD_PRELOAD environment.

If you don't want to use the script follow the scheme below.

Please read the README and the FAQ for more informations about the things to do to make an usable config file.


You can download the latest version of libconnect from the Savannah file list system or the Savannah download area or from one of our mirrors: or (thanks to morpaus).

This is the source .tar.gz file, you need
NASM to build it. A precompiled binary is included as well as a standard config file.

  • libconnect-0.5.2.tar.gz (Savannah)
  • libconnect-0.5.2.tar.gz (mirror at
  • libconnect-0.5.2.tar.gz (mirror at

  • Here is a debian package:
  • libconnect_0.5.2-1_i386.deb (Savannah)
  • libconnect_0.5.2-1_i386.deb (mirror at
  • libconnect_0.5.2-1_i386.deb (mirror at

  • RPM package (alienized from the debian one) for people who don't know the power of debian:
  • libconnect-0.5.2-1-i386.rpm (Savannah)
  • libconnect-0.5.2-1-i386.rpm (mirror at
  • libconnect-0.5.2-1-i386.rpm (mirror at

  • Slackware tgz package:
  • libconnect-0.5.2-i386-1.tgz (Savannah)
  • libconnect-0.5.2-i386-1.tgz (mirror at

  • The configuration file in the package may be old, this is my current libconnect.conf file.


    The libconnect savannah project page is here. We're also on freshmeat, linuxlinks.and
    Thanks to SecurityFocus and tucows.


    For questions, bug reports and so on...

    You can also report bugs using the savannah bug tracker and get support in the Tech Support Manager.
    Feel free to submit a support request. You are welcome to submit patches in the Patch Manager.