red-dal / rusty_ladder

A proxy client/server in rust that helps you bypass the Great Fire Wall.
GNU General Public License v3.0
12 stars 5 forks source link

Rusty-ladder

A proxy client/server for bypassing GFW censorship.

This is a hobby project and not for production.

Currently supports:

How to use

Create a configuration file in TOML v0.5 format. Detailed explanation can be found in rusty_ladder/examples/example.toml.

For example, a simple SOCKS5 proxy server:

[log]
level = "info"

[[inbounds]]
addr = "0.0.0.0:40080"
protocol = "socks5"

[[outbounds]]
protocol = "freedom"

More configuration examples can be found in rusty_ladder/examples/.

Start proxy with

./rusty_ladder -c config.toml

If built with feature use-tui enabled, run with --tui to enable the TUI.

./rusty_ladder -c config.toml --tui

How to build

Use cargo to build

Build with cargo by running:

cargo build --release

Binary will be in ./target/release/.

Use cargo cross to build

cross is used to build for different platforms.

cross build --release --no-default-features --features "$FEATURES" --target $target

Feature Flags

Commandline:

DNS:

API:

Router:

Transport:

Proxy:

OpenSSL is needed if any feature with -openssl is enabled.

Tests

Run unit tests and integration tests with

export RUST_BACKTRACE=1
# Specify log level.
export RUST_LOG=trace
# V2RAY_PATH must be specified to run integration tests.
export V2RAY_PATH=../v2ray/v2ray
cargo test --workspace

Credits

License

Copyright (C) 2021 by reddal

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.