Python Tor Win32服务不支持';开始

Python Tor Win32服务不支持';开始,python,windows,tor,Python,Windows,Tor,我有一个名为Tor Win32 service的Windows服务,Tor安装程序今天安装了该服务,但没有启动。我收到消息Windows无法在本地计算机上启动Tor Win32服务。错误1064:处理控制请求时,服务中发生异常。该服务是通过此路径安装到可执行文件的 "E:\...\tor browser\browser\torbrowser\tor\tor.exe" --nt-service "-f" "e:\...\tor browser\browser\torbrowser\data\tor

我有一个名为Tor Win32 service的Windows服务,Tor安装程序今天安装了该服务,但没有启动。我收到消息Windows无法在本地计算机上启动Tor Win32服务。错误1064:处理控制请求时,服务中发生异常。该服务是通过此路径安装到可执行文件的

"E:\...\tor browser\browser\torbrowser\tor\tor.exe" --nt-service "-f" "e:\...\tor browser\browser\torbrowser\data\tor\torrc"

这篇文章表明问题(当运行Tor中继服务时)是
torrc
中的日志文件路径。但是(a)我修复了这个问题,它没有解决问题,(b)我不想运行Tor中继,我需要该服务为我的Python程序提供代理。

您可以在Python应用程序中运行Tor not作为服务(没有
--nt service
),并使用
-f
参数传递自定义TORC。如果您想更改侦听端口,这将非常有用。
您可以使用
--hash password
参数来阻止其他应用程序访问您的tor代理。

我在tor项目上对此提出了质疑,并得到以下响应:

我们在Tor浏览器中发布的Tor并不意味着是一个独立的Tor。 如果你想在Windows上有一个独立的Tor,请使用专家 捆

因此,我采纳了建议,下载了推荐的软件包,该软件包中的
tor.exe
无论是从命令行还是作为服务都可以完美地工作

A.N.的评论/问题“这是正确的Tor可执行文件吗?”在钱上是正确的,尽管我在解决问题后才读到这一点。在那之前我都不知道该怎么回答。(“它是正确的可执行文件吗?我怎么知道?应该怎么说?我拥有的那个甚至不会告诉我它是什么版本。”)


Tor Browser捆绑包包含一个名为
Tor.exe
的程序,并将其作为服务安装,而该文件并不意味着您可以实际运行。我确实意识到,
.exe
文件并不总是真正的可执行文件,可以只是二进制资源的存储库。但您不会将这些文件安装为服务。有两个名为
tor.exe的文件,一个是要执行的,另一个不是,这让我觉得不必要的模糊。

在使用TorBrowser 8.0.2的Windows 7和Windows 10上遇到了类似的问题

我通常通过启动Tor浏览器本身来解决它,即使我不打算使用它。它似乎影响了错误1064

我看到的变化是,尽管在命令提示符下运行netstat-an的torcc文件中有“ControlPort 9051”,但除非我启动Tor浏览器本身,否则不会将端口9051显示为正在侦听或已建立。在python中以正确的Chrome或Firefox设置运行冷代码是行不通的

我遇到的另一个问题是,Tor可能没有作为服务运行,或者已经停止。Win+R和services.msc应显示它正在运行


如果没有,请通过命令提示符(以管理员身份运行)安装它,并键入sc create“Tor Win32 Service”binPath=“\”C:\xxxxxxxx\Tor\Tor.exe \”--nt Service-f \“C:/xxxxxxxx/Data/Tor/torrc\”。如果已在服务中列出,则最好通过sc删除“Tor Win32 Service”并重新安装来删除它。

只需打开services.msc右键单击Tor Win32 Service,然后单击属性,导航到登录选项卡并单击本地系统帐户。点击应用。通过在我的Python程序中运行它,您的意思是,使用
子进程
,程序
tor.exe
在启动时退出,无论它是如何调用的。如果我像这样从命令行运行它,
“E:\program files\tor browser\browser\tor browser\tor\tor.exe”-help
它不会产生输出,应该是这样的。
--版本
--列出TORC选项
同上。因此,它也不作为服务运行也就不足为奇了。当我已经知道在命令行中键入命令字符串时,从Python程序内部调用它在
subprocess.popen()
调用中没有什么意义。还有其他建议吗?我确认当前链接,此解决方案适用于W10。我已将tor.exe作为服务安装,在服务“tor Win32 service”->properties->connection下,选择的选项是“Account”。选择此选项后,服务无法以“拒绝访问”启动。将选项切换到“本地系统帐户”我可以启动/停止tor服务,tor正在运行