若干代理转换工具
2023-8-29 20:3:7 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

创建: 2023-08-29 19:02
https://scz.617.cn/network/202308291902.txt

目录:

☆ 背景介绍
☆ Privoxy
☆ pproxy
☆ gost
☆ 参考资源

☆ 背景介绍

现在加密SOCKS5代理很普遍,HTTP(S)代理已经逐渐退出历史舞台,但总有一些场景只支持HTTP代理、不支持SOCKS5代理。有时需要在不同代理之间进行类型转换,不只是SOCKS5转HTTP,也可能是HTTP转SOCKS5,或其他类型转换。在此过程中,意外发现一些相当不错的成熟工具,遂记之。本文将迭代更新,不再单开新篇。

☆ Privoxy

参[1],Privoxy可将SOCKS5代理转成HTTP代理。这是古老工具,用了很多年,时至今日仍能工作。出于完备性考虑,也记于此间。

当前最新稳定版是3.0.34,有绿色便携版,一个zip文件解压到任意目录。编辑解压目录下的config.txt,搜"listen-address  127.0.0.1:8118",注释掉该行,加入如下行:

listen-address  <downstream>:<port>
forward-socks5  /   <upstream>:<port> .

此处假设"upstream:port"是加密SOCKS5代理,执行privoxy.exe,之后"downstream:port"将提供HTTP代理,可用IE测试该HTTP代理可用。

☆ pproxy

参[2],pproxy可在同一端口同时提供多种类型代理,可让downstream是SOCKS5代理、upstream是HTTP代理,相比之下,Privoxy只能将HTTP代理转成SOCKS5代理。

安装:

pip3 install pproxy

查看帮助:

$ pproxy -h
$ python3 -m pproxy -h

usage: pproxy [-h] [-l LISTEN] [-r RSERVER] [-ul ULISTEN] [-ur URSERVER] [-b BLOCK] [-a ALIVED] [-s {fa,rr,rc,lc}] [-d] [-v]
              [--ssl SSLFILE] [--pac PAC] [--get GETS] [--auth AUTHTIME] [--sys] [--reuse] [--daemon] [--test TEST] [--version]

Proxy server that can tunnel among remote servers by regex rules. Supported protocols:
http,socks4,socks5,shadowsocks,shadowsocksr,redirect,pf,tunnel

options:
  -h, --help        show this help message and exit
  -l LISTEN         tcp server uri (default: http+socks4+socks5://:8080/)
  -r RSERVER        tcp remote server uri (default: direct)
  -ul ULISTEN       udp server setting uri (default: none)
  -ur URSERVER      udp remote server uri (default: direct)
  -b BLOCK          block regex rules
  -a ALIVED         interval to check remote alive (default: no check)
  -s {fa,rr,rc,lc}  scheduling algorithm (default: first_available)
  -d                turn on debug to see tracebacks (default: no debug)
  -v                print verbose output
  --ssl SSLFILE     certfile[,keyfile] if server listen in ssl mode
  --pac PAC         http PAC path
  --get GETS        http custom {path,file}
  --auth AUTHTIME   re-auth time interval for same ip (default86400*30)
  --sys             change system proxy setting (mac, windows)
  --reuse           set SO_REUSEPORT (Linux only)
  --daemon          run as a daemon (Linux only)
  --test TEST       test this url for all remote proxies and exit
  --version         show program's version number and exit

极简示例:

pproxy -v -l http+socks4+socks5://<downstream>:<port> -r http://<upstream>:<port>

上例将暴露出downstream,在同一端口上提供HTTP、SOCKS4、SOCKS5代理,其upstream是HTTP代理。没这需求的,不要问使用场景是什么。

测试downstream:

curl --proxy http://<downstream>:<port> -k https://ip4.me
curl --proxy socks4://<downstream>:<port> -k https://api.ipify.org
curl --proxy socks5h://<downstream>:<port> -k https://myexternalip.com/raw

官方文档有更多复杂示例,代理类型转换只是它的副作用,强烈建议遍历官方文档。pproxy实在太好用了,Windows用户有必要转成便携版单独一个EXE用。

☆ gost

在微博上推荐pproxy,网友UID(1762568450)在评论区提及gost,看了一下,同属神器,参[3]。

gost类似pproxy,只不过用Go开发的。同样可在同一端口同时提供多种类型代理,比如让downstream是SOCKS5代理、upstream是HTTP代理。

gost -L=<downstream>:<port> -F=http://<upstream>:<port>
gost -L=auto://<downstream>:<port> -F=http://<upstream>:<port>
gost -L=socks5h+http://<downstream>:<port> -F=http://<upstream>:<port>

测试downstream:

curl --proxy socks5h://<downstream>:<port> -k https://api.ipify.org
curl --proxy http://<downstream>:<port> -k https://myexternalip.com/raw

"gost -L"中socks4a不可与socks5h、http同时出现,否则要么socks4a不如愿工作,要么其他类型代理不如愿工作,可能是BUG。socks4a单独使用没问题。

gost -L=socks4a://<downstream>:<port> -F=http://<upstream>:<port>

测试downstream:

curl --proxy socks4a://<downstream>:<port> -k https://ip4.me

官方文档有更多复杂示例,代理类型转换只是它的副作用,强烈建议遍历官方文档。相比pproxy,gost的优势是更容易得到gost.exe,在Windows中使用。Go语言提供了跨平台交叉编译支持,可在Linux中编译获取Windows中运行的PE,我已经爽上了。

粗略看了一下,pproxy、gost的作者好像都是中国人,不愧是活在寡妇王凝视下的弗力曼战士,太优秀啦!

☆ 参考资源

[1] Privoxy
    https://www.privoxy.org/

[2] python-proxy
    https://github.com/qwj/python-proxy

[3] GO Simple Tunnel
    https://github.com/ginuerzh/gost/


文章来源: https://mp.weixin.qq.com/s?__biz=MzUzMjQyMDE3Ng==&mid=2247486774&idx=1&sn=cb6f948d62310c3d567f21de9ce3a782&chksm=fab2ce09cdc5471fd689a45f81a7d5d85f233aa9460a5eb7589ca01a49a637de8831d0d7a4a5&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh