Как я могу изменить конечную точку моего процесса в стволе?

Я использую stem управлять узлом tor, созданным с stem.process.launch_tor_with_config, Я также создал stem.control.Controller который работает на порту управления вышеупомянутого процесса.

Как я могу изменить выходной узел? я смотрел на stem.controller.Controller.new_circuit, но это, кажется, изменяет промежуточные узлы, сохраняя конечную точку.

Кто-нибудь знает, как это можно сделать?

Спасибо!

Редактировать:

Поэтому я думаю, что могу неправильно понять что-то фундаментальное, но я не могу обернуться вокруг этого. Я пробовал звонить Controller.get_circuits() и нашел список CircuitEvent объекты. Означает ли это, что один процесс может обрабатывать несколько цепей? Если да, то как выбрать один для использования?

Обратите внимание, что я направляю HTTP-запросы через Privoxy, который, в свою очередь, перенаправляет его на SOCKS-порт процесса tor.

Изменить 2:

Я нашел что-то, что работает, но я не знаю, как это работает, что меня беспокоит. Я с удовольствием предоставлю ответ всем, кто может:

  1. Объясните, почему мой подход работает
  2. Покажите лучший подход и объясните, как это работает

Вот что я сделал:

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

Вот оно Внешний IP изменился, так что я знаю, что сделал что-то, но черт, если я точно знаю, что.

1 ответ

Решение

У вас есть несколько вариантов использования определенного выхода...

  • Установите атрибут ExitNodes в вашем torrc. Это иллюстрируется в...

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

  • Вызовите extend_circuit() на одной из ваших существующих цепей к желаемой конечной точке...

https://stem.torproject.org/api/control.html

Если вопрос, который вы пытаетесь задать, на самом деле "как мне получить новый IP-адрес", то на этот вопрос мы более неохотно отвечаем. Частично потому, что это в первую очередь для уклонения от запретов или SEO, а частично потому, что повторное создание схем создает большую нагрузку на сеть Tor.

Что касается того, почему ваш IP, кажется, меняется, когда вы вызываете close_circuit(), это потому, что Tor затем должен воссоздать новый канал от вашего имени для следующего запроса. Нет никаких гарантий, что IP-адрес будет новым, и это потребует достаточного количества трафика для телескопирования вашего соединения через три свежих прыжка.

Я не часто бываю в Stackru, так что если у вас есть дополнительные вопросы по написанию сценариев для Tor, я бы предложил список рассылки tor-dev@ email...

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

Ура! -Дамиан (автор стволовых)

Другие вопросы по тегам