leicester

Crates.ioleicester
lib.rsleicester
version0.0.1
sourcesrc
created_at2021-10-27 09:27:24.052103
updated_at2021-10-27 09:38:06.049912
descriptionA transparently hijack bindings for Rust.
homepage
repository
max_upload_size
id472919
size25,857
inkhare (inkhare)

documentation

README

leicester

A traffic transparently redirect bindings for Rust.

Overview

Rust bindings for tcp traffic transparently redirect, it provides a few major features:

  • tcp ingress/egress transparently redirect to local port
  • avoid the use of kernel connntrack

Limitations:

  • kernel version >= 3.16
  • IPv4 available only

Example

A basic implementation example.

[dependencies]
leicester = { version = "0.0.1" }

Then, on your main.rs:

use leicester::{self, Config};

fn main() {
    let conf = &Config {
        eth_name: "ens33",
        proxy_port: "17000",
        redirect_port: "9080",
        route_table: "133",
        ignore_mask: 68,
        mask: 1,
    };

    let hijacker = leicester::Builder::new(conf);
    if hijacker.deploy().is_ok() {
        println!("traffic redirect rules deploy successeful!");
    } else {
        println!("traffic redirect rules deploy failed!");
    }
}

More examples can be found here.

Supported Rust Versions

This library is verified to work in rustc 1.51.0 (nightly), and the support of other versions needs more testing.

License

This project is licensed under the Apache License 2.0.

Commit count: 0

cargo fmt