tor.exe 的多个实例,每个实例都通过 python 拥有自己的身份
Multiple instances of tor.exe, each with own identity via python
我正在测试在我的服务器中实现的我自己的 ddos 保护功能(这是必要的)。目前我有一个糟糕的循环来发出多个 tor 请求,每个请求都有自己的身份。
os.system("taskkill /f /im tor.exe")
os.startfile("C:/Tor/Browser/TorBrowser/Tor/tor.exe")
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
session.proxies['https'] = 'socks5h://localhost:9050'
现在我想多线程处理它以获得更快的速度,因为每个 tor 连接都需要很长时间才能加载。
如果我 google 如何 运行 多个 tor 实例,我会从 tor 浏览器本身获取有关如何执行此操作的信息,而不是如何以编程方式执行此操作,有没有办法具体在 windows python3 上执行此操作?
感谢任何帮助
了解 运行 多个独立 Tor 进程的关键点是每个进程都需要自己监听 ControlPort
和 SocksPort
以便您的客户可以发出请求通过每个单独的实例。
如果您使用 Stem,stem.process.launch_tor_with_config
将是启动多个 Tor 进程的推荐方式。通过使用此方法,您可以将必要的配置选项动态地传递给每个客户端,而无需创建单独的文件,并且您将对 Tor 实例进行更好的进程管理。
如果您想使用 os
,您需要为每个实例创建一个配置文件,并在启动时将其传递给 tor。
至少,为您要 运行 的每个实例创建一个 torrc
配置文件,其中包含以下内容:
torrc.1
ControlPort 9800
SocksPort 9801
torrc.2
ControlPort 9802
SocksPort 9803
每个单独的客户端将连接到不同的 socks 端口以发出请求。
要启动它们,请使用:
os.system("C:/Tor/Browser/TorBrowser/Tor/tor.exe -f C:/path/to/torrc.1")
os.system("C:/Tor/Browser/TorBrowser/Tor/tor.exe -f C:/path/to/torrc.2")
然后为每个实例创建一个或多个客户端:
session1 = requests.session()
session1.proxies = {}
session1.proxies['http'] = 'socks5h://localhost:9801'
session1.proxies['https'] = 'socks5h://localhost:9801'
session2 = requests.session()
session2.proxies = {}
session2.proxies['http'] = 'socks5h://localhost:9803'
session2.proxies['https'] = 'socks5h://localhost:9803'
我正在测试在我的服务器中实现的我自己的 ddos 保护功能(这是必要的)。目前我有一个糟糕的循环来发出多个 tor 请求,每个请求都有自己的身份。
os.system("taskkill /f /im tor.exe")
os.startfile("C:/Tor/Browser/TorBrowser/Tor/tor.exe")
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
session.proxies['https'] = 'socks5h://localhost:9050'
现在我想多线程处理它以获得更快的速度,因为每个 tor 连接都需要很长时间才能加载。
如果我 google 如何 运行 多个 tor 实例,我会从 tor 浏览器本身获取有关如何执行此操作的信息,而不是如何以编程方式执行此操作,有没有办法具体在 windows python3 上执行此操作?
感谢任何帮助
了解 运行 多个独立 Tor 进程的关键点是每个进程都需要自己监听 ControlPort
和 SocksPort
以便您的客户可以发出请求通过每个单独的实例。
如果您使用 Stem,stem.process.launch_tor_with_config
将是启动多个 Tor 进程的推荐方式。通过使用此方法,您可以将必要的配置选项动态地传递给每个客户端,而无需创建单独的文件,并且您将对 Tor 实例进行更好的进程管理。
如果您想使用 os
,您需要为每个实例创建一个配置文件,并在启动时将其传递给 tor。
至少,为您要 运行 的每个实例创建一个 torrc
配置文件,其中包含以下内容:
torrc.1
ControlPort 9800
SocksPort 9801
torrc.2
ControlPort 9802
SocksPort 9803
每个单独的客户端将连接到不同的 socks 端口以发出请求。
要启动它们,请使用:
os.system("C:/Tor/Browser/TorBrowser/Tor/tor.exe -f C:/path/to/torrc.1")
os.system("C:/Tor/Browser/TorBrowser/Tor/tor.exe -f C:/path/to/torrc.2")
然后为每个实例创建一个或多个客户端:
session1 = requests.session()
session1.proxies = {}
session1.proxies['http'] = 'socks5h://localhost:9801'
session1.proxies['https'] = 'socks5h://localhost:9801'
session2 = requests.session()
session2.proxies = {}
session2.proxies['http'] = 'socks5h://localhost:9803'
session2.proxies['https'] = 'socks5h://localhost:9803'