Skip to content
A small command-line TCP proxy utility written in Python
Branch: master
Clone or download
timnewsham Merge pull request #7 from jnovak-praetorian/add_client_cert
adding option for client-side certificates
Latest commit 1269df3 Sep 14, 2017


A small command-line TCP proxy utility written in Python

Tim Newsham 29 Oct 2012


This is a small command-line TCP proxy utility written in python. It is designed to have very minimal requirements - it runs directly from python (tested in python 2.7) from a single source file (unless the auto-certificate option is used). When running, the proxy accepts incoming TCP connections and copies data to a TCP connection to another machine. Options allow for SSL and IPv6 connections and for the logging of all data. Data is logged in a format that preserves connection, timing and direction information and a small utility is provided to dump out the information in various formats. A small utility is also provided for generating CA and SSL certificates. This utility is the only component that relies on an external python library, but it can be run on a different machine if necessary.


  • A normal TCP proxy is straightforward:

  • For SSL, first create and install a CA cert

    • $ ./ -c
    • $ ./ ca # if you need a pkcs12 certificate
    • take ca.pem or ca.pfx and install it as a root certificate in your testing browser
  • Run the proxy using an auto-generated certificate:

  • Or manually generate a certificate (possibly on another machine) and then run the proxy using that certificate:

  • To view data logged to a file by, use proxcat:

    • $ ./ -x log.txt


TcpProx requires a python interpreter and the M2Crypto package from The program can be run with only the file and without the M2Crypto package installed if the -A option is not used.

You can’t perform that action at this time.