如何更改我的tor进程的端点?

时间:2013-06-09 20:09:19

标签: python tor

我正在使用stem来控制使用stem.process.launch_tor_with_config创建的tor节点。我还创建了一个stem.control.Controller,它正在上述进程的控制端口上运行。

如何更改退出节点?我查看了stem.controller.Controller.new_circuit,但这似乎更改了中间节点,保留了端点。

有人知道如何做到这一点吗?

谢谢!

修改

所以我认为我可能误解了一些基本的东西,但我似乎无法理解它。我尝试调用Controller.get_circuits()并找到了CircuitEvent个对象的列表。这是否意味着单个进程可以处理多个电路?如果是这样,我该如何选择使用?

请注意,我正在通过Privoxy引导HTTP请求,而Privoxy又将其转发到tor进程的SOCKS端口。

编辑2:

我发现了一些有效的东西,但我不知道如何它起作用,这让我很担心。我很乐意为任何能够:

的人奖励答案
  1. 解释为什么我的方法有效
  2. 展示更好的方法并解释其运作方式
  3. 这就是我所做的:

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

    就是这样。外部知识产权发生了变化,所以我知道我已经做了某事,但如果我确切地知道是什么,那该死的。

1 个答案:

答案 0 :(得分:6)

您有几个选项可以使用特定的退出...

  • 在torrc中设置ExitNodes属性。这在......中举例说明。

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

  • 将您当前的一个电路上的extend_circuit()调用到所需的端点......

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

如果您要问的问题是“我如何获得新的IP地址”,那么这是一个我们更不愿意回答的问题。部分是因为它主要用于禁止逃避或搜索引擎优化,部分原因是重复电路创建会给Tor网络带来很大的负担。

至于为什么在调用close_circuit()时你的IP似乎发生了变化,那是因为Tor需要代表你为以下请求重新创建一个新电路。无法保证IP是新的,这样做会带来相当大的流量来通过三个新的跃点来连接您的连接。

我不经常在StackOverflow上,所以如果你对Tor的脚本有进一步的疑问,那么我会建议你的tor-dev @ email列表......

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

干杯! -Damian(干的作者)