Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/igrigorik/hydra5
Load-balanced (multi-headed) SOCKS5 proxy
https://github.com/igrigorik/hydra5
Last synced: 2 months ago
JSON representation
Load-balanced (multi-headed) SOCKS5 proxy
- Host: GitHub
- URL: https://github.com/igrigorik/hydra5
- Owner: igrigorik
- Created: 2011-11-07T15:56:35.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2011-11-07T20:03:08.000Z (about 13 years ago)
- Last Synced: 2024-09-17T16:11:34.094Z (4 months ago)
- Language: Ruby
- Homepage:
- Size: 108 KB
- Stars: 42
- Watchers: 5
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://github.com/igrigorik/hydra5/raw/master/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 hydra5
$> hydra5 --listen 8080 --hosts host1,host2 --key ssh_key.pub --user name --verbose
``````ruby
c = Curl::Easy.new('http://jsonip.com')
c.proxy_url = 'localhost:8080'
c.proxy_type = Curl::CURLPROXY_SOCKS5c.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](http://www.privoxy.org/) or an equivalent tool in front.
## License
The MIT License - Copyright (c) 2011 Ilya Grigorik