Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
igrigorik committed Nov 7, 2011
1 parent 6c9754e commit 2062416
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
13 changes: 9 additions & 4 deletions README.md
Expand Up @@ -2,26 +2,31 @@

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

[img]
![hydra overview](misc/hydra.png)

Hydra uses SSH to establish the SOCKS5 tunnels and [em-proxy](https://github.com/igrigorik/em-proxy) to provide the transparent routing for any SOCKS5 compatible client.

## Getting started

```
$> gem install hydra
$> hydra --listen 8080 --hosts host1,host2 --key ssh_key.pub --verbose
$> hydra --listen 8080 --hosts host1,host2 --key ssh_key.pub --user name --verbose
```

```ruby
c = Curl::Easy.new('http://whatismyip.org')
c = Curl::Easy.new('http://jsonip.com')
c.proxy_url = 'localhost:8080'
c.proxy_type = Curl::CURLPROXY_SOCKS5

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

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

Of course, you can also convert hydra into a proper HTTP proxy by deploying [privoxy](http://www.privoxy.org/) or an equivalent tool in front.

## License

The MIT License - Copyright (c) 2011 Ilya Grigorik
2 changes: 1 addition & 1 deletion lib/hydra/version.rb
@@ -1,3 +1,3 @@
module Hydra
VERSION = "0.0.1"
VERSION = "0.1.0"
end

0 comments on commit 2062416

Please sign in to comment.