6

stemで作成された tor ノードを制御するためにを使用していstem.process.launch_tor_with_configます。stem.control.Controller前述のプロセスの制御ポートで動作するも作成しました。

出口ノードを変更するにはどうすればよいですか? を見ましたが、これは中間ノードstem.controller.Controller.new_circuitを変更し、エンドポイントを保持しているようです。

これを行う方法を知っている人はいますか?

ありがとう!

編集:

だから私は何か根本的なことを誤解しているかもしれないと思いますが、それについて頭を包むことができないようです. 電話してみたところ、オブジェクトController.get_circuits()のリストが見つかりました。CircuitEventこれは、1 つのプロセスで複数の回線を処理できるということですか? その場合、使用するものをどのように選択すればよいですか?

HTTP リクエストを Privoxy 経由で送信していることに注意してください。Privoxy はそれを tor プロセスの SOCKS ポートに転送しています。

編集2:

機能するものを見つけましたが、それがどのように機能するのかわかりません。心配です。次のいずれかができる人には、喜んで回答を差し上げます。

  1. 私のアプローチが機能する理由を説明する
  2. より良いアプローチを示し、それがどのように機能するかを説明する

これが私がやったことです:

for circuit in controller.get_circuits():
    controller.close_circuit(circuit.id)

そこにそれがある。外部 IP が変更されたので、何かを行ったことはわかりますが、正確に何を知っているかはわかりません。

4

1 に答える 1

6

特定の出口を使用するには、いくつかのオプションがあります...

  • torrc に ExitNodes 属性を設定します。これは、...に例示されています。

https://stem.torproject.org/tutorials/to_russia_with_love.html

  • 現在の回路の 1 つでextend_circuit()を目的のエンドポイントに呼び出します...

https://stem.torproject.org/api/control.html#stem.control.Controller.extend_circuit

あなたが尋ねようとしている質問が本当に「新しい IP アドレスを取得するにはどうすればよいか」である場合、それは私たちが答えたがらない質問です. 理由の 1 つは主に禁止回避または SEO のためであり、回路の作成を繰り返すと Tor ネットワークに高い負荷がかかるためです。

close_circuit() を呼び出すと IP が変更されるように見える理由については、Tor が次の要求のために新しい回路を再作成する必要があるためです。IP が新しいものであるという保証はありません。そうすると、3 つの新しいホップを介して接続をテレスコープするために、かなりの量のトラフィックが必要になります。

私は StackOverflow にあまり参加していないので、Tor に対するスクリプト作成についてさらに質問がある場合は、tor-dev@ メーリング リストをお勧めします...

https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev/

乾杯!-Damian (ステムの作者)

于 2013-06-11T03:25:49.573 に答える