I have installed Tor to run as a service on my windows machine and I am trying to make requests in python through the Stem package. In my torrc file I have specified ControlPort as 9051 and set a HashedControlPassword. When I run netstat, I see that Tor is running on localhost:9050 but there is nothing listening to port 9051. As a result, when I try to connect to the ControlPort in python:
Controller.from_port(port=9051)
results in a
[Errno 10061] No connection could be made because the target machine actively refused it
I've tried restarting the service, I even reinstalled Tor Browser but nothing seems to make the ControlPort work.
the problem you have is because you are running tor as a Windows Service. The issue is that when tor is installed as a service, for whatever reason the Control Port is not enabled. To fix your issue, open your terminal, navigate to the tor directory and type the following commands:
tor --service remove
tor --service install -options ControlPort 9051
Now, tor is installed as a service AND the ControlPort is enabled on port 9051. If you type "netstat -an" you will now see that port 9051 is open.
You will then be able to use Stem to connect to the ControlPort.
I hope this helps.
Peace. Sat Cit Ananda.
Solution that worked for me (windows 10) with a bit of tweaking from Sat Cit Ananda
's answer:
[at your terminal]
cd ...\Tor Browser\Browser\TorBrowser\Tor
tor --service remove
tor --service install -options ControlPort 9151
netstat -an
Tor service runs at default port 9150
and ControlPort on 9151
.
You should be able to see local address 127.0.0.1:9150
and 127.0.0.1:9151
when you run netstat -an
.
来源:https://stackoverflow.com/questions/45972637/getting-tor-controlport-to-work