A high performence Socks5 proxy server with bind/reverse support
- Async
 - Single executable
 - Linux/Windows/Mac/BSD support
 - Support reverse mode(Not bind any port in client)
 
$> cargo build --release
$> cargo install rsocx
You can run a socks5 proxy and listen port at 1080
$> ./rsocx -l 0.0.0.0:1080
First listen a port waiting for slave connection
$> ./rsocx -t 0.0.0.0:8000 -s 0.0.0.0:1080
then reverse connect to master in slave
$> ./rsocx -r 127.0.0.1:8000
Simple load test through proxychains4 visit to Tornado's helloworld case in LAN.
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)| Envoriment | Value | 
|---|---|
| Proxy OS | Windows11 | 
| CPU | i7-9700k | 
| Target OS | Ubuntu20.04 | 
| Network | LAN | 
| Target Server | Tornado(Python) | 
| Test Count | 1k | 
| Socks5 client | Proxychains4 | 
| Project | Language | Base | Take Time | 
|---|---|---|---|
| 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 | 
(Test Date : 13 Nov 2021)
- IPV6 Support
 -  
SOCKS5Authentication Methods-  
NOAUTH -  
USERPASS 
 -  
 -  
SOCKS5Commands-  
CONNECT -  
BIND -  
ASSOCIATE 
 -