忍受我。这是我的第一篇文章...
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,临时和干净的东西,而不是在重新启动tor之前重写torrc的破解bash脚本。(在一个完美的世界中,我宁愿不写入隐藏的服务目录,但 tor 还没有实现。)
我尝试尽可能跨平台,但我正在使用 Tor 2.3.25 运行 Linux ......
那么谁知道为什么 Stem 不让我提供隐藏服务呢?