Home

Awesome

rsocx Build Status ChatOnDiscord Crate

A high performence Socks5 proxy server with bind/reverse support

Features

Build & Run

$> cargo build --release

Installation

$> cargo install rsocx

Usage

Bind Mode

You can run a socks5 proxy and listen port at 1080

$> ./rsocx -l 0.0.0.0:1080

Reverse Mode

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

Benchmark

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)

Test Envoriment

EnvorimentValue
Proxy OSWindows11
CPUi7-9700k
Target OSUbuntu20.04
NetworkLAN
Target ServerTornado(Python)
Test Count1k
Socks5 clientProxychains4

Test Result

ProjectLanguageBaseTake Time
rsocxRustAsync-std12.90s
rsocx(reverse)RustAysnc-std24.65s
merinoRustTokio12.37s
go-socks5Golanggoroutine12.31s
simple-socksNodejsasync13.71s
asio5C++Boost::Asio12.37s
esocksJavaThread-Pool25.06s

(Test Date : 13 Nov 2021)

Socks5 Protocol Support

Reference