• Stars
    star
    160
  • Rank 234,703 (Top 5 %)
  • Language
    Rust
  • License
    MIT License
  • Created almost 10 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple SOCKS5/HTTP tunnel

STunnel

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

Build by Cargo:

Cargo build --release

Usage

./stunnel_server <OPTIONS>
Options:
    -l, --listen <IP:PORT>
    -k, --key <STRING>
        --log <PATH>
        --ucp-metrics-path <PATH>

./stunnel_client <OPTIONS>
Options:
    -s, --server <IP:PORT>
    -k, --key <STRING>
        --enable-ucp
        --socks5-proxy <IP:PORT>
        --http-proxy <IP:PORT>
        --log <PATH>
        --ucp-metrics-path <PATH>
        --tcp-tunnel-count <NUMBER>

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

UCP is an ARQ protocol implementation, which is based on UDP and inspired by KCP.