#socks5-proxy #proxy-server #high #sock #bind-reverse #performence

app rsocx

由 Rust 实现的高性能 Socks5 代理服务器,支持绑定/反向功能

2 个版本

0.1.3 2022年4月6日
0.1.2 2021年12月30日
0.1.1 2021年11月13日
0.1.0 2021年11月13日

#socks5-proxy 中排名 27

MIT 许可证

18KB
502

rsocx 构建状态 ChatOnDiscord Crate

支持绑定/反向功能的高性能 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