Simple SOCKS5/HTTP tunnel. SOCKS5 on client side provides NO AUTHENTICATION TCP/UDP proxy.
. | .
. f .
. i .
port1 ------| r |------ port1
| e |
| | |
port2 ---client---------------- tunnel ----------------server--- port2
| | |
| w |
port3 ------| a |------ port3
. l .
. l .
. | .
Build by Cargo:
Cargo build --release
./stunnel_server -l listen-address -k key [--log log-path] [--http http-address]
./stunnel_client -s server-address -k key [-c tcp-tunnel-count] [--socks5-proxy socks5-proxy-address] [--http-proxy http-proxy-address] [--http http-address] [--log log-path] [--enable-ucp]
Browser connect client address(127.0.0.1:1080
) through SOCKS5 or connect client address(127.0.0.1:8888
) through HTTP.
--enable-ucp
option on client side to enable UCP tunnel instead of TCP tunnel, UCP tunnel is much faster than TCP tunnel in most cases.
UCP is an ARQ protocol implementation, which is based on UDP and inspired by KCP.