我正在测试自己在服务器中实现的ddos保护功能(这是必需的)。目前,我有一个糟糕的循环,无法发出多个Tor请求,每个请求都有其自己的身份。
TestClass2
现在,我想对此多线程以提高速度,因为每个tor连接都需要花费一定的时间才能加载。
如果我用谷歌搜索如何运行多个Tor实例,我会从Tor浏览器本身中获取有关如何执行此操作的信息,而永远不会以编程方式进行操作,是否有专门在Windows python3上执行此操作的方法?
任何帮助表示赞赏
答案 0 :(得分:2)
了解有关运行多个单独的Tor进程的关键点是每个进程都需要侦听自己的ControlPort
和SocksPort
,以便您的客户端可以通过每个实例发出请求。
如果使用Stem,建议使用stem.process.launch_tor_with_config
启动多个Tor进程。通过使用此方法,您可以将必需的配置选项动态传递给每个客户端,而不必创建单个文件,并且您将在Tor实例上进行更好的流程管理。
如果要使用os
,则需要为每个实例创建一个配置文件,并将其在启动时传递给tor。
至少要使用以下命令为每个要运行的实例创建一个torrc
配置文件:
ControlPort 9800
SocksPort 9801
ControlPort 9802
SocksPort 9803
每个客户端将连接到不同的袜子端口以发出请求。
要启动它们,请使用:
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'