忍受我。这是我的第一篇帖子......
Tor项目最近引入了Stem作为可加载的python模块。我一直在玩它,看看它是否是一个可行的工具。我的结果好坏参半。
我尝试在控制器中启用隐藏服务的配置(假设它直接来自torrc文件。它总是在我身上失败。这是我尝试的一个简单例子:
#!/usr/bin/env python
from stem.control import Controller
controller = Controller.from_port(port = 9051)
controller.authenticate()
controller.set_options({'HIDDENSERVICEDIR':'/tmp/hiddenservice/','HIDDENSERVICEPORT':'1234 127.0.0.1:1234'})
...返回错误:
InvalidRequest Traceback (most recent call last)
/home/user/my/folder/<ipython-input-5-3921e9b46181> in <module>()
/usr/local/lib/python2.7/dist-packages/stem/control.pyc in set_options(self, params, reset)
1618 raise stem.InvalidRequest(response.code, response.message)
1619 elif response.code in ("513", "553"):
-> 1620 raise stem.InvalidRequest(response.code, response.message)
1621 else:
1622 raise stem.ProtocolError("Returned unexpected status code: %s" % response.code)
InvalidRequest: Unacceptable option value: Failed to configure rendezvous options. See logs
...以及/ var / log / tor / log中的以下内容:
Aug 1 10:10:05.000 [warn] HiddenServicePort with no preceding HiddenServiceDir directive
Aug 1 10:10:05.000 [warn] Controller gave us config lines that didn't validate: Failed to configure rendezvous options. See logs for details.
我已经尝试过如上所示的Stem的“set_options”和两个带有“set_conf”的独立命令。使用“set_conf”,我可以设置HiddenServiceDir,但在设置端口时仍然会失败,让我觉得我对Tor有一个根本的误解。
我检查了我的电路,如果我有一个隐藏的服务会合点,那似乎并不重要;它一直在失败。我宁愿保持pythonic,temporal和clean的东西,也没有一个hacked up bash脚本在重启tor之前重写torrc。 (在一个完美的世界中,我宁愿不写入隐藏的服务目录,但是还没有实现它。)
我尝试尽可能跨平台,但我正在使用Tor 2.3.25运行Linux ...
那么谁有想法为什么Stem不会让我做隐藏的服务呢?
答案 0 :(得分:1)
感谢您通过我们bug tracker向我指出这一点。在这里回答这个问题。 :)
set_options() docs说......
params可以选择是键/值元组的列表,但这种类型的参数有用的唯一原因是隐藏服务配置(这些选项依赖于顺序)。
这里的问题是Tor的隐藏服务选项与其他所有配置选项的行为略有不同。 Tor期望一个'HiddenServiceDir'后跟与该隐藏服务相关联的属性(它依赖于顺序)。这是因为单个tor实例可以提供多个隐藏服务。
请改变你的电话......
controller.set_options({'HIDDENSERVICEDIR':'/tmp/hiddenservice/','HIDDENSERVICEPORT':'1234 127.0.0.1:1234'})
...取而代之的是元组列表......
controller.set_options([('HiddenServiceDir', '/tmp/hiddenservice/'), ('HiddenServicePort', '1234 127.0.0.1:1234')])
希望这有帮助! -Damian