I need to use multiple instances of Tor with different IP addresses on each. I looked it up on google and found this link. So far I was able to make use of the "manual way" of editing everything and launching the instance. However there are a few problems I see using this method.

It takes a while to edit and launch each instance (5-10mins each) After closing each instance, it doesn't work anymore. Hence, I have to redo each instance.

I also found in that link an answer where the guy made a "bash script." Correct me if I'm wrong, but this is for linux. Is there a way to do this in Windows?

2 Answers 2


When you are looking for configuration of Tor-daemon, you should take a look at this file:


I'm not on Windows, however, I can advice to you to find a correct torrc - config file which is used by Windows version. For example, push at one time ctrl+tab, in this manager try to change configuration to show you full command name, there you would find Tor-daemon process, not a TorBrowser process. So there are two processes:

  • firefox --class Tor Browser -profile TorBrowser/Data/Browser/profile.default
  • tor --defaults-torrc tor-browser_en-US/Browser/TorBrowser/Data/Tor/torrc-defaults

When you done, try to read config file of Tor-daemon: torrc-defaults

On Linux system, it is contains next:

# torrc-defaults for Tor Browser
# This file is distributed with Tor Browser and should not be modified (it
# may be overwritten during the next Tor Browser update). To customize your
# Tor configuration, shut down Tor Browser and edit the torrc file.
# If non-zero, try to write to disk less frequently than we would otherwise.
AvoidDiskWrites 1
# Where to send logging messages.  Format is minSeverity[-maxSeverity]
# (stderr|stdout|syslog|file FILENAME).
Log notice stdout
# Bind to this address to listen to connections from SOCKS-speaking
# applications.
SocksPort 9150 IPv6Traffic PreferIPv6 KeepAliveIsolateSOCKSAuth
ControlPort 9151
CookieAuthentication 1
## fteproxy configuration
ClientTransportPlugin fte exec ./TorBrowser/Tor/PluggableTransports/fteproxy.bin --managed

## obfs4proxy configuration
ClientTransportPlugin obfs2,obfs3,obfs4,scramblesuit exec ./TorBrowser/Tor/PluggableTransports/obfs4proxy

## meek configuration
ClientTransportPlugin meek exec ./TorBrowser/Tor/PluggableTransports/meek-client-torbrowser -- ./TorBrowser/Tor/PluggableTransports/meek-client

See, here # - it is a comment, so this line will not be handled by Tor-daemon.

Also, read the manual about this config file here.

Finally, there are only two TCP-ports used by TorBrowser's Tor-daemon by default:

  • SocksPort 9150 IPv6Traffic PreferIPv6 KeepAliveIsolateSOCKSAuth
  • ControlPort 9151

For each instance of TorBrowser you need to get different ports, because otherwise Tor-daemon can not bind itself on the network-subsystem, then it can not launch itself, then TorBrowser can not connect to Tor-Daemon.

Try to copy full directory of TorBrowser to separate place, edit exact torrc, be careful, there are many different torrc files by default, like default torrc from Tor-daemon packet, different debug torrc files, etc...

Thereafter, edit second instance by hands. Viola - you have Two different TorBrowser instance which are used two different Tor-daemons, which are binded on four different TCP-ports.


Windows can easily run Bash scripts - Windows 10 now has "Ubuntu subsystem", previous versions have "Services for Unix", there also a Cygwin, MinGW and even standalone builds of Bash+binutils for Windows, so you can obtain the package which will be best for you and just run your bash script on Windows.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .