Как я могу изменить конечную точку моего процесса в стволе?
Я использую 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:
Я нашел что-то, что работает, но я не знаю, как это работает, что меня беспокоит. Я с удовольствием предоставлю ответ всем, кто может:
- Объясните, почему мой подход работает
- Покажите лучший подход и объясните, как это работает
Вот что я сделал:
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/
Ура! -Дамиан (автор стволовых)