如何在stem.process.launch_tor_with_config中指定Tor使用的电路

时间:2016-11-19 20:59:08

标签: tor stem

在stem.process.launch_tor_with_config中 我们如何指定Tor使用的电路?

1 个答案:

答案 0 :(得分:0)

launch_tor_with_config()的配置字典中,您可以指定要使用/排除的入口和出口节点,以及排除在电路中使用的特定中继(假设StrictNodes == 1)。但是没有办法在配置中定义要使用的特定电路。

您可以使用stem.Controller库中的extend_circuit()函数创建具有指定路径的电路,列出您希望电路使用的继电器指纹。

定义您自己的电路并确保Tor不会自动替换它们:

(1)在用于launch_tor_with_config()的配置中,将NewCircuitPeriod和MaxCircuitDirtiness设置为非常高的值,以便不会自动销毁电路。默认情况下,它们被标记为脏,并且在首次使用后600秒(10分钟)内不用于新连接。这意味着您的定制电路可能会在10分钟后自动更换,除非您告诉Tor不要。 MaxCircuitDirtiness is 30 days的最大值。配置选项MaxCircuitDirtiness以秒为单位指定,因此这将是60⋅60⋅24⋅30 = 2592000秒。如果您的应用程序需要连续运行超过30天,则必须每个月左右手动销毁/创建新电路......

(2)使用extend_circuit()创建所需的电路。如文档中所述,您基本上只提供一个继电器指纹列表来定义电路所需的路径。例如:

controller.extend_circuit('0', ['718BCEA286B531757ACAFF93AE04910EA73DE617',
                                '30BAB8EE7606CBD12F3CC269AE976E0153E7A58D',
                                '2765D8A8C4BBA3F89585A9FFE0E8575615880BEB'])

...第一个参数'0'告诉它使用列表中指定的路径创建一个新电路。

(3)关闭默认情况下使用Stem.controller.close_circuit()创建的所有其他电路

如果您执行上述操作,则应该存在的唯一电路是具有您创建的路径的电路,并且它们不会被标记为脏并且会被替换30天。