Python - 如何创建代理隧道

Python - How to create a tunnel of proxies

我问了这个问题:

而且我了解到,要创建代理链,我必须:

在第二点之前我得到了我必须做的事情,因为我想我只需要将 "CONNECT" header 添加到代理 A 的 http 请求中。但我的问题是, 在这个例子中 http 请求:

CONNECT ipproxy:80 HTTP/1.1
Host: ?:80

在主机中header我应该再放代理IP还是别的什么?喜欢代理B ip还是最终站点域名?

另外,我不明白如何从第三点继续到下一个......因为我不知道如何告诉代理A创建到代理B的隧道然后代理B创建通往最终站点的代理 C 的隧道..

如何使用 python 进行操作的示例?或者一些文档?

没有主机 header 使用 CONNECT。 IE。请求 HTTP 代理 A 创建到 HTTP 代理 B 的隧道,您只需使用:

>>> CONNECT B_host:B_port HTTP/1.0
>>>
<<< 200 connections established
<<<

然后你有这个隧道通过代理 A 到代理 B。然后在这个隧道内你可以创建另一个隧道到目标 T,即在同一个套接字上发送和接收下一个:

>>> CONNECT T_host:T_port HTTP/1.0
>>>
<<< 200 connections established
<<<

请注意,并非所有代理都允许您连接到任意主机和端口,它们也可能不允许任意协议(例如隧道内的隧道),但仅允许选定的协议(例如 HTTPS)。