Giter VIP home page Giter VIP logo

egress's Introduction

Egress

Egress is a lightweight and UDP/TCP tunnel over QUIC that leverages the QUIC Datagram extension.

Features

  • Support for both UDP and TCP tunneling
  • Utilizes the QUIC Datagram extension for minimized latency
  • Support for concurrent socket peers by multiplexing QUIC datagrams

Table of Contents

  1. Getting Started
  2. Usage

Getting Started

Prerequisites

Before you begin, ensure you have the following software installed on your system:

Installation

Clone the Egress repository:

git clone https://github.com/bsbds/egress.git

Navigate to the project directory:

cd egress

Build the project:

cargo build --release

Usage

Configuration

Generate a preshared key

openssl rand 32 | base64

Create a configuration file, config.toml, with the following structure:

mode = "server" # or "client"
psk = "PSK" # preshared key you generated in base64 encoding
congestion = "bbr" # congestion of quic connection, "cubic", "new_reno" or "bbr"
initial_mtu = 1452 # 1500 bytes ethernet frame - 40 bytes ipv6 header - 8 bytes UDP header, modify this for your usecase
enable_0rtt = false # whether to enable 0rtt handshake
loglevel = "warn" # rust's log level
stream_idle_timeout = 30 # timeout for multiplexed stream
connection_idle_timeout = 60 # timeout for one quic connection

# server specific
[server]
quic_listen = "[::]:443" # server listen address
self_sign = false # whether use self signed certificates
certificate = "path/to/certificate"
private_key = "path/to/private_key"

# client specific
[client]
server_name = "example.com" # server name
server_addr = "192.168.1.1:443" # server address, can be a domain
listen = "127.0.0.1:1234" # local listen address
peer = "127.0.0.1:1234" # remote address to connect to
cert_ver = true # whether to verify server certificates
network = "udp" # network mode, or "tcp"

Example

To run Egress:

./egress --config config.toml

egress's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

egress's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.