Skip to content
Load-balanced (multi-headed) SOCKS5 proxy
Ruby
Find file
Latest commit 9b6bebf Nov 7, 2011 @igrigorik fix namespace
Failed to load latest commit information.
bin ack, rubygems collisions Nov 7, 2011
lib ack, rubygems collisions Nov 7, 2011
misc extract proxy logic Nov 5, 2011
.gitignore extract proxy logic Nov 6, 2011
.rspec import Nov 5, 2011
Gemfile import Nov 5, 2011
README.md fix example in readme Nov 7, 2011
Rakefile import Nov 5, 2011
hydra5.gemspec fix namespace Nov 7, 2011

README.md

Hydra5: load-balanced (multi-headed) SOCKS5 proxy

Given a list of hosts hydra5 opens a pool of SOCKS5 tunnels and routes incoming requests via a random tunnel. In effect, hydra5 is a regular SOCKS5 proxy, except that each outbound request is automatically load-balanced.

hydra overview

Hydra uses SSH to establish the SOCKS5 tunnels and em-proxy to provide the transparent routing for any SOCKS5 compatible client.

Getting started

$> gem install hydra5
$> hydra5 --listen 8080 --hosts host1,host2 --key ssh_key.pub --user name --verbose
c = Curl::Easy.new('http://jsonip.com')
c.proxy_url = 'localhost:8080'
c.proxy_type = Curl::CURLPROXY_SOCKS5

c.perform
c.body_str # => => {"ip":"72.52.131.237"}

c.perform
c.body_str # => => {"ip":"34.22.124.45"}

Of course, you can also convert hydra5 into a proper HTTP proxy by deploying privoxy or an equivalent tool in front.

License

The MIT License - Copyright (c) 2011 Ilya Grigorik

Something went wrong with that request. Please try again.