2 个版本
0.1.3 | 2022年4月6日 |
---|---|
0.1.2 | 2021年12月30日 |
0.1.1 |
|
0.1.0 |
|
在 #socks5-proxy 中排名 27
18KB
502 行
rsocx
支持绑定/反向功能的高性能 Socks5 代理服务器
特性
- Async-std
- 无 unsafe 代码
- 单个可执行文件
- 支持 Linux/Windows/Mac/BSD
- 支持反向模式(客户端不绑定任何端口)
构建 & 运行
$>cargo build--release
安装
$>cargo install rsocx
使用方法
绑定模式
您可以在 1080 端口运行 socks5 代理并监听
$> ./rsocx-l0.0.0.0:1080
反向模式
首先监听一个端口等待从属连接
$> ./rsocx-t0.0.0.0:8000 -s0.0.0.0:1080
然后在从属端反向连接到主服务器
$> ./cliws-r127.0.0.1:8000
基准测试
通过 proxychains4
进行简单的负载测试,访问局域网中 Tornado 的 helloworld
用例。
import grequests
import time
start = time.time()
req_list = [grequests.get('http://192.168.0.222:8888') for i in range(1000)]
res_list = grequests.map(req_list)
print(time.time()-start)
测试环境
环境 | 值 |
---|---|
代理操作系统 | Windows11 |
CPU | i7-9700k |
目标操作系统 | Ubuntu20.04 |
网络 | 局域网 |
目标服务器 | Tornado(Python) |
测试次数 | 1k |
Socks5 客户端 | Proxychains4 |
测试结果
项目 | 语言 | 基础 | 耗时 |
---|---|---|---|
rsocx | Rust | Async-std | 12.90s |
rsocx(reverse) | Rust | Aysnc-std | 24.65s |
merino | Rust | Tokio | 12.37s |
go-socks5 | Golang | goroutine | 12.31s |
simple-socks | Nodejs | async | 13.71s |
asio5 | C++ | Boost::Asio | 12.37s |
esocks | Java | Thread-Pool | 25.06s |
(测试日期:2021年11月13日)
Socks5 协议支持
- IPV6 支持
-
SOCKS5
认证方法-
NOAUTH
-
USERPASS
-
-
SOCKS5
命令-
CONNECT
-
BIND
-
ASSOCIATE
-
参考
依赖
~7–17MB
~220K SLoC