如何将 Socks5 代理转换为 HTTP 代理?

如何将 Socks5 代理转换为 HTTP 代理?

是否有任何命令行工具可用于将 Socks5 代理转换为 HTTP 代理?

我搜索了 2015 年的答案,其中说我可以使用 Polipo,但它已停产。

还有其他工具可以做到这一点吗?非常感谢。

答案1

这可以通过戈斯特,可以使用代理许多代理协议并将交通隧道传输到其他地方。

$ gost -L=http://:8080 -F=socks5://proxy.domain.name:1080

答案2

基本上,SOCKS5 和 HTTP 使用的是完全不同的语言,因此您不能直接将 SOCKS5 转换为 HTTP 代理。您需要运行某种中间软件来处理两个代理之间的切换。

注意:这是一个未经测试的解决方案,因为我的网络上没有代理可供测试。但是,这个概念和配置对于代理流量的代理来说似乎是可行的,尽管这同样未经测试。

有一个项目叫python-proxypproxy是可执行文件)。这不是我的项目,但看起来它能够进行代理到代理的转换和切换。

首先,在要运行 HTTP 代理且 Synology 可以与之通信的系统上安装此程序,即使它位于 SOCKS5 代理服务器上。python3-pip首先安装,以便您可以使用 PyPI 项目和软件:

sudo apt install python3-pip
sudo pip3 install pproxy[accelerated]

这将在系统范围内安装 Python 代理工具,并具有可提高性能的 C 库集成。如果由于某种原因无法正确安装,则只需在确保先删除 pproxy 加速后使用普通 pproxy 工具即可(如果在卸载时提示,则只需选择是,如果提示未安装,则只需执行安装命令):

sudo pip3 uninstall pproxy
sudo pip3 install pproxy

注意:我假设连接是 Synology 到 HTTP 代理,然后您想将 HTTP 代理的内容交给 SOCKS5 代理。您可以在我对您的问题的评论中澄清这一点,我会相应地修改这个答案。

然后,理论上,您可以使用它在将“托管”此“http 到 socks5”代理工具的系统上运行它:

pproxy -l http://0.0.0.0:8080 -ru socks5://socks5.proxy.ip.or.domain:port

然后,您需要将 Synology NAS 指向运行该工具的系统的 http 地址和端口组合(如果运行的服务器pproxy有 IP 10.20.30.40,那么您将把 NAS 指向http://10.20.30.40:8080代理)

从理论上来说,这应该可以处理两种不同代理类型之间的“代理切换”。

再说一次,我没有测试过这一点,但是代码和代理理论确实看起来是合理的。

答案3

我如何解决这个问题:

  1. 安装tsocks包(本身就是非常有用的工具)并将其配置为使用 SOCKS5 代理 - 这允许apt通过 SOCKS5 隧道传输某些程序(尽管并非所有程序都能正常工作)
  2. 安装tinyproxy-bin包,默认配置文件示例可以在以下位置找到https://tinyproxy.github.io;还有tinyproxy包,但我只需要tinyproxy二进制。
  3. 运行tsocks tinyproxy -d -c ~/tinyproxy.conf(示例不会守护进程,并假定示例配置文件在主目录中创建)

或者,您可以尝试不同的选项(tinyproxy包、守护进程),但我没有测试它们。

相关内容