Skip to content
A transparent proxy written in Golang. It can send to upstream proxies (e.g. corporate) and CONNECT on any port through corp proxies, giving internet access to external internet resources.
Go Shell
Branch: master
Clone or download
Latest commit c2ab9c6 Mar 23, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
builds Version 1.2 Nov 16, 2014
debian Comment was not accurate Dec 8, 2013
upstart Added sleep to upstart script to prevent spawning too fast Nov 11, 2014
.gitignore Added SNI peek and hostname based connections Jun 30, 2018
.travis.yml Fix autoversioning Jun 2, 2013
COPYING Added copyright for Zack Dannar's flogger package Oct 14, 2013
README.md update README Mar 23, 2019
any_proxy.go Cleaned the SNI parsing code and made it optional via flag -S=1 Jul 5, 2018
any_proxy_test.go Clean up Jun 1, 2014
make.bash
sni.go Added SNI peek and hostname based connections Jun 30, 2018
stats.go A lot of improvements Apr 24, 2017
version_test.go Add version test Jun 2, 2013

README.md

Build Status

Any Proxy

go-any-proxy is a server that can transparently proxy any tcp connection through an upstream proxy server. This type of setup is common in corporate environments. It is written in golang and has been load tested with 10,000 concurrent connections successfully on a Vyatta running a 64-bit kernel.

Travis-CI

Build status can be found at http://travis-ci.org/ryanchapman/go-any-proxy

More info

For more info, see http://blog.rchapman.org/post/47406142744/transparently-proxying-http-and-https-connections

Maintenance

This project is actively maintained. As of this writing (March 2019), I haven't had any bugs submitted in a few years, which is why you don't see much for code changing. But be assured that I am watching the project and will address any bugs that come in.

Authentication

You can add basic authentication parameters if needed, like this:

any_proxy -l :3140 -p "MyLogin:Password25@proxy.corporate.com:8080"

Installation

$ git clone https://github.com/ryanchapman/go-any-proxy.git
$ cd go-any-proxy
$ ./make.bash

You'll end up with a binary any_proxy

Experimental Mac OS X support

Fredrik Skogbreg has written the support for Mac OS X, but it is considered experimental until a load and performance test is completed. To build the mac version, after cloning this repo with git clone https://github.com/ryanchapman/go-any-proxy.git, change to the mac branch with git checkout mac, then make with ./make.bash. You'll need to configure some firewall rules in Mac OS X firewall, see issue #16 (https://github.com/ryanchapman/go-any-proxy/pull/16) for instructions.

-Ryan A. Chapman
Sun Nov 2 16:39:24 MST 2014

You can’t perform that action at this time.