我正在尝试通过python运行Tor。我的目标是能够在我选择的时间随时切换出口或以其他方式更改我的IP。我遵循了几个教程,遇到了几个不同的错误。
此代码打印我的IP地址
import requests
r = requests.get('http://icanhazip.com/')
r.content
# returns my regular IP我已经下载并“安装”了Tor浏览器(尽管它似乎是从.exe运行的)。当它运行时,我可以使用下面的代码来返回我的Tor IP,它似乎每隔10分钟左右就会改变一次,所以到目前为止一切似乎都正常
import socks
import socket
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9150)
socket.socket = socks.socksocket
r = requests.get('http://icanhazip.com/')
print r.content
# Returns a different IP现在,我已经找到了关于如何以编程方式请求新身份的说明here,但这是事情开始出错的地方。我运行以下代码
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9151) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)在创建控制器的行上,我得到了错误"SOCKS5Error: 0x01: General SOCKS server failure“。我认为这可能是配置问题- instructions say应该有一个名为'torrc‘的配置文件,其中包含端口号,除了其他东西。
最后,在目录C:\Users..myname.\Desktop\Tor Browser\Browser\TorBrowser\Data\Tor中,我发现了三个文件,一个是'torrc',一个是'torrc-defaults',还有一个是'torrc.orig.1‘。我的‘torrc-default’看起来与文档中显示的'torrc‘类似,我的'torrc.orig.1’是空的,我的'torrc‘有两行注释,后面还有一些设置,但没有端口设置
# This file was generated by Tor; if you edit it, comments will not be preserved
# The old torrc file was renamed to torrc.orig.1 or similar, and Tor will ignore it
...我已经尝试确保“torrc-default”中列出的两个端口与开头的socks语句中的端口和后面的控制器语句中的端口匹配。当它们分别为9150和9151时,我得到上面列出的一般SOCKS服务器故障。
当我尝试用错误的端口运行控制器(在这种情况下,9051是在其他文章中推荐的,但对我来说,这会导致当我调整‘torrc-defaults’时Tor浏览器无法加载),然后我得到错误消息"Errno 10061无法建立连接,因为目标机器主动拒绝了它“
最后,当我在后台运行Tor浏览器时运行Controller,但没有首先运行SOCKS语句,我得到了很多警告文本,最后出现了一个错误,如下所示:
...
...
250 __OwningControllerProcess
DEBUG:stem:GETCONF __owningcontrollerprocess (runtime: 0.0010)
TRACE:stem:Sent to tor:
SIGNAL NEWNYM
TRACE:stem:Received from tor:
250 OK
TRACE:stem:Received from tor:
650 SIGNAL NEWNYM
TRACE:stem:Sent to tor:
QUIT
TRACE:stem:Received from tor:
250 closing connection
INFO:stem:Error while receiving a control message (SocketClosed): empty socket content起初,我认为这看起来很有希望--我在新的用户请求之前和之后都放入了一个类似这样的快速检查行
print requests.get('http://icanhazip.com/').content它打印IP,但不幸的是,前后都是一样的。
我在这里很迷惑-任何支持都将不胜感激!
谢谢。
发布于 2016-02-16 18:16:52
获取您的哈希密码:
tor --hash-password my_password修改配置文件:
sudo gedit /etc/tor/torrc添加以下几行
ControlPort 9051
HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF
CookieAuthentication 1注意:- HashedControlPassword是从第一个命令生成的
请参阅此link
我还没有自己尝试过,因为我使用的是mac,但我希望这对配置有所帮助
发布于 2015-04-16 01:24:19
你可以使用torify来实现你的目标。例如,像下面的命令"sudo torify python“那样运行python解释器,每个连接都将通过TOR路由。
关于torify的参考:https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO
https://stackoverflow.com/questions/28637436
复制相似问题