I was using the AllowDotExit option to make two simultaneous requests to www.example.net with two different exit nodes. How can I achieve this now because AllowDotExit was removed.
-
Allow DotExit allows people to control what Exits you use, enabling it was incredibly dangerous.– cacahuatlJan 26, 2018 at 21:04
-
Any possibilities to make the following requests: Local --> Exit1 --> www.example.net and Local --> Exit2 --> www.example.net ?– BlackMatrixJan 27, 2018 at 18:33
-
Run two copies of Tor?– cacahuatlJan 27, 2018 at 22:23
-
Isn't there an option like AttachStream or similar? I heard about it in the past.– BlackMatrixJan 28, 2018 at 14:11
-
AttachStream in combination with EXTENDCIRCUIT?– BlackMatrixJan 28, 2018 at 14:22
2 Answers
Configure two tor instances, using MapAddress
to bind them to specific exit, rather than the dangerous, and thankfully gone, AllowDotExit
.
For example:
# cat torrc-1 && tor -f torrc-1 && cat torrc-2 && tor -f torrc-2
SocksPort 9150
MapAddress check.torproject.org check.torproject.org.0593F5255316748247EBA76353A3A61F62224903.exit
RunAsDaemon 1
DataDirectory /tmp/tor
User nobody
Jan 27 22:34:24.453 [notice] Tor 0.3.2.9 (git-64a719dd25a21acb) running on Linux with Libevent 2.0.21-stable, OpenSSL 1.0.2g, Zlib 1.2.8, Liblzma 5.1.0alpha, and Libzstd N/A.
Jan 27 22:34:24.453 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 27 22:34:24.454 [notice] Read configuration file "/tmp/torrc-1".
Jan 27 22:34:24.460 [notice] Scheduler type KIST has been enabled.
Jan 27 22:34:24.460 [notice] Opening Socks listener on 127.0.0.1:9150
SocksPort 9250
MapAddress check.torproject.org check.torproject.org.BC630CBBB518BE7E9F4E09712AB0269E9DC7D626.exit
RunAsDaemon 1
DataDirectory /tmp/tor2
User nobody
Jan 27 22:34:24.533 [notice] Tor 0.3.2.9 (git-64a719dd25a21acb) running on Linux with Libevent 2.0.21-stable, OpenSSL 1.0.2g, Zlib 1.2.8, Liblzma 5.1.0alpha, and Libzstd N/A.
Jan 27 22:34:24.533 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 27 22:34:24.534 [notice] Read configuration file "/tmp/torrc-2".
Jan 27 22:34:24.545 [notice] Scheduler type KIST has been enabled.
Jan 27 22:34:24.549 [notice] Opening Socks listener on 127.0.0.1:9250
Now test that they're working:
# curl -x socks5h://127.0.0.1:9150/ https://check.torproject.org 2> /dev/null | grep "Your IP address appears to be"
<p>Your IP address appears to be: <strong>93.174.93.71</strong></p>
# curl -x socks5h://127.0.0.1:9250/ https://check.torproject.org 2> /dev/null | grep "Your IP address appears to be"
<p>Your IP address appears to be: <strong>197.231.221.211</strong></p>
-
That's overcomplicated and unneeded for something that is relatively simple.– user78Jan 28, 2018 at 3:48
-
I'm assuming they wanted equivalent functionality of AllowDotExit, otherwise yes using circuit isolation would serve the same purpose. Jan 28, 2018 at 22:03
Using IsolateSOCKSAuth
is considerably simpler and easier to do as long as you don't care which two exists are used, just that they are different.
$ curl -x socks5h://socks:isolation1@127.0.0.1:9150/ https://wtfismyip.com/text
85.93.218.204
$ curl -x socks5h://socks:isolation2@127.0.0.1:9150/ https://wtfismyip.com/text
2a02:418:4014:1::10