高性能 HTTP 代理隧道工具 - suo5
2023-5-12 10:10:52 Author: 黑白之道(查看原文) 阅读量:246 收藏

suo5 是一个全新的 HTTP 代理隧道,基于 HTTP/1.1 的 Chunked-Encoding 构建。相比 Neo-reGeorg 等传统隧道工具, suo5 的性能可以达到其数十倍。查看 性能测试

其主要特性如下:

  • 同时支持全双工与半双工模式,传输性能接近 FRP

  • 支持在 Nginx 反向代理和负载均衡场景使用

  • 完善的连接控制和并发管理,使用流畅丝滑

  • 支持 Tomcat Jetty Weblogic Resin 等主流中间件

  • 支持 Java4 ~ Java 19 全版本

  • 同时提供提供命令行和图形化界面

原理介绍 https://koalr.me/posts/suo5-a-hign-performace-http-socks/

安装运行

        前往 Releases 下载编译好的二进制,其中带 gui 的版本是界面版,不带 gui 的为命令行版。所有编译由 Github Action 自动构建,请放心使用。

使用时需上传 suo5.jsp 到目标环境中并确保可以执行。

https://github.com/zema1/suo5/

界面版

        界面版基于 wails 实现,依赖 Webview2 框架。Windows 11 和 MacOS 已自带该组件,其他系统会弹框请允许下载安装,否则无法使用。

USAGE:   suo5 [global options] command [command options] [arguments...]
VERSION: v0.6.0
COMMANDS: help, h Shows a list of commands or help for one command
GLOBAL OPTIONS: --target value, -t value set the remote server url, ex: http://localhost:8080/tomcat_debug_war_exploded/ --listen value, -l value set the listen address of socks5 server (default: "127.0.0.1:1111") --method value, -m value http request method (default: "POST") --redirect value, -r value redirect to the url if host not matched, used to bypass load balance --no-auth disable socks5 authentication (default: true) --auth value socks5 creds, username:password, leave empty to auto generate --mode value connection mode, choices are auto, full, half (default: "auto") --ua value the user-agent used to send request (default: "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.1.2.3") --header value, -H value [ --header value, -H value ] use extra header, ex -H 'Cookie: abc' --timeout value http request timeout in seconds (default: 10) --buf-size value set the request max body size (default: 327680) --proxy value use upstream socks5 proxy --debug, -d debug the traffic, print more details (default: false) --no-heartbeat, --nh disable heartbeat to the remote server which will send data every 5s (default: false) --help, -h show help --version, -v print the version

命令行版本与界面版配置完全一致,可以对照界面版功能来使用,最简单的只需指定连接目标

$ ./suo5 -t https://example.com/proxy.jsp

使用 GET 方法发送请求,有时可以绕过限制

$ ./suo5 -m GET -t https://example.com/proxy.jsp

自定义 socks5 监听在 0.0.0.0:7788,并自定义认证信息为 test:test123

$ ./suo5 -t https://example.com/proxy.jsp -l 0.0.0.0:7788 --auth test:test123

负载均衡场景下将流量转发到某一个固定的 url 解决请求被分散的问题 (需要尽可能的在每一个后端服务中上传 suo5)

$ ./suo5 -t https://example.com/proxy.jsp -t http://172.0.3.2/code/proxy.jsp

文章来源: Khan安全攻防实验室 

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文

END

多一个点在看多一条小鱼干


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650569674&idx=4&sn=38c8a393b871923590673f4fa174cbff&chksm=83bd1e2eb4ca9738ddf38a1496e3be93e91e5baf5b8529082f8a66e6a02afdaa8f278be3b27f#rd
如有侵权请联系:admin#unsafe.sh