| Crates.io | rusnel |
| lib.rs | rusnel |
| version | 0.1.2 |
| created_at | 2025-01-11 22:47:40.796634+00 |
| updated_at | 2025-01-16 19:56:32.040959+00 |
| description | Rusnel is a fast TCP/UDP tunnel, transported over and encrypted using QUIC protocol. Single executable including both client and server |
| homepage | https://github.com/guyte149/Rusnel |
| repository | https://github.com/guyte149/Rusnel |
| max_upload_size | |
| id | 1512789 |
| size | 110,524 |
Rusnel is a fast TCP/UDP tunnel, transported over and encrypted using QUIC protocol. Single executable including both client and server. Written in Rust.
Easy to use
Single executable including both client and server.
Uses QUIC protocol for fast and multiplexed communication.
Encrypted connections using the QUIC protocol (Tls1.3)
Static forward tunneling (TCP, UDP)
Static reverse tunneling (TCP, UDP)
Dynamic tunneling (socks5)
Dynamic reverse tunneling (reverse socks5)
cargo install rusnel
Clone the repository and build the project:
git clone https://github.com/guyte149/Rusnel.git
cd rusnel
cargo build --release
$ rusnel --help
A fast tcp/udp tunnel
Usage: rusnel <COMMAND>
Commands:
server run Rusnel in server mode
client run Rusnel in client mode
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
$ rusnel server --help
run Rusnel in server mode
Usage: rusnel server [OPTIONS]
Options:
--host <HOST> defines Rusnel listening host (the network interface) [default: 0.0.0.0]
-p, --port <PORT> defines Rusnel listening port [default: 8080]
--allow-reverse Allow clients to specify reverse port forwarding remotes
-v, --verbose enable verbose logging
--debug enable debug logging
-h, --help Print help
$ rusnel client --help
run Rusnel in client mode
Usage: rusnel client [OPTIONS] <SERVER> <remote>...
Arguments:
<SERVER> defines the Rusnel server address (in form of host:port)
<remote>...
<remote>s are remote connections tunneled through the server, each which come in the form:
<local-host>:<local-port>:<remote-host>:<remote-port>/<protocol>
■ local-host defaults to 0.0.0.0 (all interfaces).
■ local-port defaults to remote-port.
■ remote-port is required*.
■ remote-host defaults to 0.0.0.0 (server localhost).
■ protocol defaults to tcp.
which shares <remote-host>:<remote-port> from the server to the client as <local-host>:<local-port>, or:
R:<local-host>:<local-port>:<remote-host>:<remote-port>/<protocol>
which does reverse port forwarding,
sharing <remote-host>:<remote-port> from the client to the server\'s <local-host>:<local-port>.
example remotes
1337
example.com:1337
1337:google.com:80
192.168.1.14:5000:google.com:80
socks
5000:socks
R:2222:localhost:22
R:socks
R:5000:socks
1.1.1.1:53/udp
When the Rusnel server has --allow-reverse enabled, remotes can be prefixed with R to denote that they are reversed.
Remotes can specify "socks" in place of remote-host and remote-port.
The default local host and port for a "socks" remote is 127.0.0.1:1080.
Options:
-v, --verbose enable verbose logging
--debug enable debug logging
-h, --help Print help