- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 stem
来控制使用 stem.process.launch_tor_with_config
创建的 tor 节点。我还创建了一个在上述进程的控制端口上运行的 stem.control.Controller
。
如何更改导出节点?我查看了 stem.controller.Controller.new_circuit
,但这似乎改变了中间节点,保留了端点。
有谁知道如何做到这一点?
谢谢!
编辑:
所以我想我可能误解了一些基本的东西,但我似乎无法理解它。我尝试调用 Controller.get_circuits()
并找到了 CircuitEvent
对象的列表。这是否意味着单个进程可以处理多个电路?如果是这样,我该如何选择一个使用?
请注意,我通过 Privoxy 将 HTTP 请求定向到 Privoxy,而 Privoxy 又将其转发到 tor 进程的 SOCKS 端口。
编辑 2:
我找到了一些有用的东西,但我不知道它是如何工作的,这让我很担心。我很乐意将答案授予能够满足以下任一条件的任何人:
这是我所做的:
for circuit in controller.get_circuits():
controller.close_circuit(circuit.id)
就是这样。外部 IP 已更改,所以我知道我做了某事,但如果我确切知道是什么,见鬼去吧。
最佳答案
您有几个选项可以使用特定导出...
https://stem.torproject.org/tutorials/to_russia_with_love.html
https://stem.torproject.org/api/control.html#stem.control.Controller.extend_circuit
如果您要问的问题真的是“我如何获得新的 IP 地址”,那么我们更不愿意回答这个问题。部分原因是它主要用于规避禁令或 SEO,部分原因是重复创建电路会给 Tor 网络带来高负载。
至于为什么当您调用 close_circuit() 时您的 IP 似乎发生了变化,那是因为 Tor 然后需要代表您为以下请求重新创建一个新电路。无法保证 IP 是新的,这样做会涉及相当多的流量,以通过三个新跃点来压缩您的连接。
我不经常使用 StackOverflow,所以如果您对针对 Tor 编写脚本有进一步的疑问,那么我建议您使用 tor-dev@ 电子邮件列表...
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev/
干杯! -Damian(stem 的作者)
关于python - 如何在 stem 中更改我的 tor 进程的端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013707/
我是一名优秀的程序员,十分优秀!