Example Rust application

by erdcy

GitHub Readme.md

RSnova: Private Proxy Solution & Network Troubleshooting Tool.

Build Status

部署

Deploy

Features

  • Multiplexing
    • All proxy connections running over N persist proxy channel connections
  • Simple PAC(Proxy Auto Config)
  • Multiple Ciphers support
    • Chacha20Poly1305
    • AES128
  • HTTP/Socks4/Socks5 Proxy
    • Local client running as HTTP/Socks4/Socks5 Proxy
  • Transparent TCP Proxy
    • Transparent tcp proxy implementation
  • Low-memory Environments Support
    • Use 10MB RSS memory at client/server side

Usage

./target/debug/rsnova -h
rsnova 0.1.0
yinqiwen<yinqiwen@gmail.com>
Private proxy solution & network troubleshooting tool.

USAGE:
    rsnova [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --config <FILE>    Sets a custom config file [default: ./rsnova.toml]

Client Side

./rsnova -c ./client.toml

client.toml

[log]
logtostderr = true
level = "info"
logdir = "./"

[[tunnel]]
listen = "127.0.0.1:48100"
pac=[{host = ".*", channel = "rmux"}]

[[channel]]
# name of current channel
name = "rmux"
# host & port of server
url = "127.0.0.1:48101"
ping_interval_sec = 10
conns_per_host = 5
max_alive_mins = 40
# cipher to communicate with server
cipher = {key="abcdefg", method = "chacha20poly1305"}

Server Side

./rsnova -c ./server.toml

server.toml

[log]
logtostderr = true
level = "info"
logdir = "./"


[[tunnel]]
# listen address of tunnel server
listen = "rmux://127.0.0.1:48101"
# pac rule to relay traffic, 'direct' is special channel which relay direct to remote target server
pac=[{host = ".*", channel = "direct"}]
cipher = {key="abcdefg", method = "chacha20poly1305"}