Skip to content

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

License

Notifications You must be signed in to change notification settings

u1234x1234/torpool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published