Torpool Save

Containerized pool of multiple Tor instances with load balancing and HTTP proxy.

Project README

Docker Pulls Size

torpool

Containerized pool of multiple Tor instances with load balancing and HTTP proxy.

Key features

  • Multiple Tor instances with a single endpoint for the end user
  • Easy configured (IP rotation, country selection of the exit node, etc)
  • Lightweight alpine based Docker image
  • HTTP proxy with Privoxy
  • HTTP/Socks load balancing with HAProxy
  • Does not using root user inside Docker
              +-----------------------------------------------+           
              | Docker                                        |           
              |                                               |           
              |                   +-------+            +----+ |           
              |                   |Privoxy|------------|Tor1| |           
              |                   +-------+        |   +----+ |           
+------+      | +-------+         +-------+        |   +----+ |           
|Client|--------|Haproxy|-------- |Privoxy|--------|---|Tor2| |           
+------+      | +-------+         +-------+        |   +----+ |           
              |     |             +-------+        |   +----+ |           
              |     |             |Privoxy|--------|---|Tor3| |           
              |     |             +-------+        |   +----+ |           
              |     |                              |          |           
              |     |                              |          |           
              |     +------------------------------+          |           
              |                                               |           
              +-----------------------------------------------+           

Usage

Start 5 Tor instances:

docker run -d -p 9200:9200 -p 9300:9300 u1234x1234/torpool:1.0.3 --Tors=5

HTTP proxy is accessible at port 9300:

curl --proxy localhost:9300 http://ipinfo.io/ip

Socks is accessible at port 9200:

curl --socks5 localhost:9200 http://ipinfo.io/ip

To make Tor instances rotate:

docker run -d -p 9200:9200 -p 9300:9300 u1234x1234/torpool:1.0.3 --MaxCircuitDirtiness 30 --NewCircuitPeriod 30

Use only US exit nodes:

docker run -d -p 9200:9200 -p 9300:9300 u1234x1234/torpool:1.0.3 --ExitNodes {us}

List of available Tor options

To view HAProxy stats page:

docker run -d -p 9200:9200 -p 9300:9300 -p 9500:9500 u1234x1234/torpool:1.0.3

Then open in browser http://localhost:9500/haproxy_stats and enter HAProxy username and password. The default username is haproxy, password is password, but it can be changed using using the volume mounting:

echo "pss" > pass_file
docker run -d -p 9200:9200 -p 9300:9300 -p 9500:9500 -v "$PWD/pass_file":/run/secrets/haproxy_password u1234x1234/torpool:1.0.3

Expected password location: /run/secrets/haproxy_password, username: /run/secrets/haproxy_username.

Docker-compose example:

version: '3'
services:
  torpool:
    image: u1234x1234/torpool:1.0.3
    command: ['--Tors', '2', '--NewCircuitPeriod', '30', '--MaxCircuitDirtiness', '30']
    container_name: torpool
    ports:
      - "9200:9200"
      - "9300:9300"
      - "9500:9500"

Why

There is a lot of great projects on github, but non of them provides all the options listed above. Some of them:

Open Source Agenda is not affiliated with "Torpool" Project. README Source: u1234x1234/torpool
Stars
51
Open Issues
2
Last Commit
2 years ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating