我们使用本地TOR代理运行许多并行刮刀。所以有一个SOCKS5代理列表,大约200个:
的socks5://本地主机:端口 SOCKS5://本地主机:端口2 SOCKS5://本地主机:端口3 ...
某些软件无法与SOCKS一起使用,仅适用于HTTP代理。所以我们需要运行一些可以作为HTTP代理的软件,但是会将请求重定向到SOCKS代理。
传统的答案是使用Polipo \ Vidalia,但它们都需要配置,如果你想运行200个实例,你必须处理200个配置文件,这不是那么简单。
另一个解决方案,例如 MITM代理(Python)很好,但它太慢而且占用太多RAM(只需将每个脚本乘以200 - 即使一个人吃30兆,然后变成6 RAM的演出)。
Proxychains没问题,但它仍然需要每个实例的配置文件。
一个委托程序很好,但由于一些奇怪的原因它停止工作 - 它拒绝接收连接并返回类似“检测到入侵attemt,停止” - 重启没有帮助。它是在本地接口上运行的,web服务没问题,也没有被黑客入侵 - 所以行为真的很奇怪。
所以我们正在寻找像 delegate 这样的东西,但更可靠,没有错误。小的,快的,最好用C \ C ++编写。
或者 - 任何脚本语言的任何软件解决方案(但它应该是快速和精通内存的。)
我不是C程序员,所以如果你要在C中给我一些代理代码的“例子” - 它将不起作用,我只需要花一天时间进入代码,编译它并运行。不幸的是=)
谢谢!
答案 0 :(得分:1)
Polipo不需要配置文件 - 它可以从命令行读取其配置。因此从shell脚本运行200个polipi很容易:
for ((i = 0; i < 100; i++)); do
polipo deamonize=true diskCacheRoot='' proxyPort=$((i + 8100)) socksParentProxy=$(host$i) pidFile="/var/run/polipo$i.pid"
done
请注意,上面禁用了磁盘缓存 - 不支持在多个Polipo实例之间共享单个磁盘缓存 - 如果您需要此功能,您应该在polipo-users邮件列表中询问。
可以将Polipo配置为仅在几兆内存中运行(检查chunkHighMark
变量),因此运行200个实例不应该是一个问题。