是否有任何命令行工具可用于将 Socks5 代理转换为 HTTP 代理?
我搜索了 2015 年的答案,其中说我可以使用 Polipo,但它已停产。
还有其他工具可以做到这一点吗?非常感谢。
答案1
答案2
基本上,SOCKS5 和 HTTP 使用的是完全不同的语言,因此您不能直接将 SOCKS5 转换为 HTTP 代理。您需要运行某种中间软件来处理两个代理之间的切换。
注意:这是一个未经测试的解决方案,因为我的网络上没有代理可供测试。但是,这个概念和配置对于代理流量的代理来说似乎是可行的,尽管这同样未经测试。
有一个项目叫python-proxy
(pproxy
是可执行文件)。这不是我的项目,但看起来它能够进行代理到代理的转换和切换。
首先,在要运行 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
我如何解决这个问题:
- 安装
tsocks
包(本身就是非常有用的工具)并将其配置为使用 SOCKS5 代理 - 这允许apt
通过 SOCKS5 隧道传输某些程序(尽管并非所有程序都能正常工作) - 安装
tinyproxy-bin
包,默认配置文件示例可以在以下位置找到https://tinyproxy.github.io;还有tinyproxy
包,但我只需要tinyproxy
二进制。 - 运行
tsocks tinyproxy -d -c ~/tinyproxy.conf
(示例不会守护进程,并假定示例配置文件在主目录中创建)
或者,您可以尝试不同的选项(tinyproxy
包、守护进程),但我没有测试它们。