Is it possible to use tor browser inside a transparent proxy? I try to use the tor browser inside a transparent proxy but I can't, it gives an error. The transparent proxy itself works perfectly, in other browsers accessing onion sites and I navigate perfectly on clear a net! Here is my torrc configuration:

AutoMapHostsOnResolve 1
AutoMapHostsSuffixes .onion, .exit
TransPort 9040
DNSPort 9053

my rules iptables:
iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports 9040

iptables -t nat -A OUTPUT -p tcp --syn --dport 53 -j REDIRECT --to-ports 9053

iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 9053

Output error log Tor:
warn] Rejecting request for anonymous connection to private address [scrubbed] on a TransPort or NATDPort. Possible loop in your NAT rules?

  • "Tor over Tor" is not supported by the network. You'll need to run Tor Browser from outside of the proxied environment. See tor.stackexchange.com/a/23538/24966
    – Steve
    Jun 13 at 4:02
  • Well I thought of that! Do you know of any online material where I can delve into tor settings? Jun 13 at 4:08
  • The best place to look is the man page.
    – Steve
    Jun 14 at 2:20
  • Thanks Steve, however I see that tails uses transparent proxy and can use the tor browser as well what do I need to do to achieve this feat? Assuming that tor over tor doesn't work, how can I force my browser to establish my proxy without trying tor over tor? Jun 15 at 1:08
  • I don't know what Tails does, but I posted an answer with the instructions in Tor Browser's start-tor-browser file.
    – Steve
    Jun 15 at 4:16

1 Answer 1


The Tor Browser gives the following documentation in tor-browser/Browser/start-tor-browser for running the browser using the system Tor. I haven't tried it, and I don't know if these instructions are up-to-date.

# Using a system-installed Tor process with Tor Browser:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# The Tor ControlPort password should be given inside double quotes, inside
# single quotes, i.e. if the ControlPort password is “secret” (without
# curly quotes) then we must set the environment variable *exactly* like
# this:
# Yes, the variable MUST be double-quoted, then single-quoted, exactly as
# shown. This is used by TorButton and Tor Launcher to authenticate to Tor's
# ControlPort, and is necessary for using TB with a system-installed Tor.
# Additionally, if using a system-installed Tor, the following about:config
# options should be set (values in <> mean they are the value taken from your
# torrc):
# SETTING NAME                            VALUE
# network.proxy.socks           
# network.proxy.socks_port                <SocksPort>
# extensions.torbutton.inserted_button    true
# extensions.torbutton.launch_warning     false
# extensions.torbutton.loglevel           2
# extensions.torbutton.logmethod          0
# extensions.torlauncher.control_port      <ControlPort>
# extensions.torlauncher.loglevel          2
# extensions.torlauncher.logmethod         0
# extensions.torlauncher.prompt_at_startup false
# extensions.torlauncher.start_tor         false
# where the '[...]' in the banned_ports option means "leave anything that was
# already in the preference alone, just append the things specified after it".

# Either set `TOR_CONTROL_PASSWD` before running ./start-tor-browser, or put
# your password in the following line where the word “secret” is:
setControlPortPasswd ${TOR_CONTROL_PASSWD:='"secret"'}

You must log in to answer this question.

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