【问题标题】:Simple, one-liner solution to chain HTTP->SOCKS5 proxy链接 HTTP->SOCKS5 代理的简单单行解决方案
【发布时间】:2014-06-11 13:24:48
【问题描述】:

我们使用本地 TOR 代理运行许多并行抓取工具。所以有一个 SOCKS5 代理列表,总共大约 200 个:

socks5://localhost:port socks5://localhost:port2 socks5://localhost:port3 ...

某些软件不能与 SOCKS 一起使用,而只能与 HTTP 代理一起使用。所以我们需要运行一些软件来充当 HTTP 代理,然后将请求重定向到 SOCKS 代理。

传统的答案是使用 Polipo\Vidalia,但它们都需要配置,如果要运行 200 个实例,则必须处理 200 个配置文件,这并不简单。

另一种解决方案,例如 MITM 代理 (Python) 很好,但它太慢并且占用太多 RAM(只需将每个脚本乘以 200 - 即使一个吃 30 兆,然后它变成 6内存的演出)。

Proxychains 没问题,但它仍然需要每个实例的配置文件。

delegate 程序很好,但由于某些奇怪的原因停止工作 - 它拒绝接收连接并返回类似“检测到入侵尝试,将要停止”之类的内容 - 重新启动没有帮助。它在本地界面上运行,网络服务正常且没有被黑客入侵 - 所以这种行为真的很奇怪。

所以我们正在寻找类似 delegate 但更可靠且没有错误的东西。用 C\C++ 编写的小、快、更可取的东西。

或者 - 使用任何脚本语言的任何软件解决方案(但它应该是快速且节省内存的)。

我不是 C 程序员,所以如果你要给我一些 C 中代理代码的“示例” - 它不会起作用,我需要一天的时间才能进入代码并编译它并运行。不幸的是 =)

谢谢!

【问题讨论】:

  • 如果您想要一些奇怪的东西,通常socat 会提供。检查一下:dest-unreach.org/socat 哦,顺便说一句,没有 C\C++。只有 C/C++。在 IT 中,符号确实很重要,(空间)人。 ;)

标签: c++ proxy


【解决方案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 个实例应该不是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-21
    • 2010-09-05
    • 1970-01-01
    • 2012-01-18
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    相关资源
    最近更新 更多