我慢してください。これは私の最初の投稿です...
Tor プロジェクトは最近、ロード可能な Python モジュールとして Stem を導入しました。それが実行可能なツールであるかどうかを確認するために、私はそれをいじっています。私の結果はまちまちです。
コントローラー内の非表示のサービスの構成を有効にしようとしました (これは、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」を使用した2つの別々のコマンドでこれを試しました。「set_conf」を使用すると、HiddenServiceDir を設定できますが、ポートを設定するときも同じように失敗し、Tor について根本的な誤解をしていると思います。
回線を確認しましたが、非表示のサービス ランデブー ポイントがあるかどうかは問題ではないようです。それは失敗し続けます。私は物事をpythonic、temporal、そしてきれいに保ち、torを再起動する前にtorrcを書き換えるハッキングされたbashスクリプトを持たないことを好みます。(完全な世界では、非表示のサービス ディレクトリに書き込みたくないのですが、tor はまだそれを実装していません。)
可能な限りクロスプラットフォームにしようとしていますが、Tor 2.3.25 で Linux を実行しています...
では、Stem が隠しサービスを作成させてくれない理由を誰が思いつくでしょうか?