用于链接 HTTP->SOCKS5 代理的简单单行解决方案
Simple, one-liner solution to chain HTTP->SOCKS5 proxy
我们使用本地TOR代理运行许多并行抓取器。所以这里有一个SOCKS5代理的列表,总共大约200个:
socks5://localhost:端口socks5://localhost:端口2socks5://localhost:端口3…
一些软件不能与SOCKS一起工作,只能与HTTP代理一起工作。所以我们需要运行一些软件来作为HTTP代理,但是会将请求重定向到SOCKS代理。
一个传统的答案是使用PolipoVidalia,但它们都需要配置,如果你想运行200个实例,你必须处理200个配置文件,这不是那么简单。
另一个解决方案,如MITM代理 (Python)是好的,但它太慢了,占用了太多的RAM(只需将每个脚本乘以200 -即使一个脚本占用了30兆,那么它将变成6兆的RAM)。
Proxychains是可以的,但它仍然需要为每个实例配置文件。
一个delegate程序是正常的,但是由于一些奇怪的原因它停止了工作——它拒绝接收连接并返回类似于"检测到入侵尝试,将停止"的东西——重新启动没有帮助。它是在本地接口上运行的,web服务是正常的,没有被黑客攻击——所以这种行为真的很奇怪。
所以我们在寻找像delegate这样的东西,但是更可靠,没有错误。小的,快的,最好用C c++写的东西。或者-任何脚本语言的任何软件解决方案(但它应该是快速和内存精明的)。
我不是一个C程序员,所以如果你要给我一些C语言代理代码的"例子"——它不会工作,它将花费我一天的时间来进入代码,编译它并运行。不幸的是=)
谢谢!
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个实例应该不是问题。
- 在c++中用vector填充一个简单的动态数组
- 代理对象的常量正确性
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 从函数返回任意简单类型的数据
- 如何在没有函数的情况下编写此代码并使C++更简单?
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 使用 C++/boost::asio/libcurl 的简单代理 - 无法下载图像
- 用于链接 HTTP->SOCKS5 代理的简单单行解决方案