🐳 Tiny Docker image (🤏 10MB) as 🧅 Tor SOCKS5 proxy 🛡
Find a file
2018-07-13 01:01:48 +08:00
.travis.yml Adjust CI process 2018-07-12 19:55:50 +08:00
Dockerfile Add missing version LABEL 2018-07-11 14:40:13 +08:00
README.md Add Travis CI build status badge 2018-07-13 01:01:48 +08:00
torrc init 2017-01-10 09:22:54 +08:00

Tor-socks-proxy

license Build Status

The super easy way to setup a Tor SOCKS5 proxy server inside a Docker container without relay/exit feature.

How to use?

  1. Setup the proxy server at the first time

    $ docker run -d --name tor_socks_proxy -p 127.0.0.1:9150:9150 peterdavehello/tor-socks-proxy:latest
    
    • Use 127.0.0.1 to limit the connections from localhost, do not change it unless you know you're going to expose it to a local network or to the Internet.
    • Change to first 9150 to any valid and free port you want, please note that port 9050/9150 may already taken if you are also running other Tor client, like TorBrowser.
    • Do not touch the second 9150 as it's the port inside the docker container unless you're going to change the port in Dockerfile.

    If you already setup the instance before (not the first time), just start it:

    $ docker start tor_socks_proxy
    
  2. Make sure it's running, it'll take a short time to bootstrap

    $ docker logs tor_socks_proxy
    .
    .
    .
    Jan 10 01:06:59.000 [notice] Bootstrapped 85%: Finishing handshake with first hop
    Jan 10 01:07:00.000 [notice] Bootstrapped 90%: Establishing a Tor circuit
    Jan 10 01:07:02.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
    Jan 10 01:07:02.000 [notice] Bootstrapped 100%: Done
    
  3. Configure your client to use it, target on 127.0.0.1 port 9150(Or the other port you setup in step 1)

    Take curl as an example, checkout what's your IP address via Tor network:

    $ curl --socks5-hostname 127.0.0.1:9150 ipinfo.io/ip
    $ curl --socks5-hostname 127.0.0.1:9150 icanhazip.com
    $ curl --socks5-hostname 127.0.0.1:9150 ipecho.net/plain
    $ curl --socks5-hostname 127.0.0.1:9150 whatismyip.akamai.com
    

    Take ssh and nc as an example, connect to a host via Tor:

    $ ssh -o ProxyCommand='nc -x 127.0.0.1:9150 %h %p' target.hostname.blah
    
  4. After using it, you can turn it off

    $ docker stop tor_socks_proxy
    

How to renew IP?

  • To renew the IP that Tor gives you, simply restart your docker container:

    $ docker restart tor_socks_proxy
    

    Just note that all the connections will be terminated and need to be reconnected.

Note

For the Tor project sustainability, I strongly encourage you to help setup Tor bridge/exit nodes(script) and donate money to the Tor project (Not this proxy project) when you have the ability/capacity!