Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Load-balanced (multi-headed) SOCKS5 proxy

branch: master

fix namespace

latest commit 9b6bebf808
Ilya Grigorik authored November 07, 2011
Octocat-spinner-32 bin ack, rubygems collisions November 07, 2011
Octocat-spinner-32 lib
Octocat-spinner-32 misc
Octocat-spinner-32 .gitignore extract proxy logic November 05, 2011
Octocat-spinner-32 .rspec import November 05, 2011
Octocat-spinner-32 Gemfile import November 05, 2011
Octocat-spinner-32 README.md fix example in readme November 07, 2011
Octocat-spinner-32 Rakefile import November 05, 2011
Octocat-spinner-32 hydra5.gemspec fix namespace November 07, 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.