FranzKafkaYu / overplus

Yet another proxy server that support trojan protocol and v protocol.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

overplus

Overplus is another implementation of trojan protocol with better perfermance and stability.

Azure DevOps Status

Compared with trojan:

  • Lower latency and higher speed
  • Enhanced Security
  • Easy to deploy
  • More readable and cleaner code.

One-click deployment

Run the script and follow the assistant:

curl -O https://raw.githubusercontent.com/xyanrch/overplus/master/install.sh && chmod +x install.sh && sudo ./install.sh

It is strongly recommended to enable BBR to accelerate the network speed.

Enable BBR on 20.04 and CentOS 8

Build

The project depend on boost and openssl libraries, please make sure install boost and openssl before build the project.

How to build

mkdir build && cd build
cmake ..
make

How to run

sudo ./overplus server.json

server.json is a config file which you can customize.

Example config file

{
    "run_type": "server",
    "local_addr": "0.0.0.0",
    "local_port": "443",
    "allowed_passwords": [
        "testpsswd"
    ],
    "log_level": "NOTICE",
    "log_dir":"",
    "ssl": {
        "cert": "path_to_cert",
        "key": "path_to_key"
    }
}

Windows platform build

Windows use vcpkg to manage library

Dowload vcpkg

git clone https://github.com/Microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat

Install dependence

.\vcpkg\vcpkg.exe install --triplet x64-windows

Build project

cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="..\vcpkg\scripts\buildsystems\vcpkg.cmake"
cmake --build build

How does overplus work?

Trojan protocol is a socks5 like protocol.Trojan request is formed as follows:

    +----+-----+-------+------+----------+----------+-------+
    |Command | password| DST.ADDR | DST.PORT |packed payload
    +----+-----+-------+------+----------+----------+-------+
    | unit8  |  string  | string |   string  | string
    +----+-----+-------+------+----------+----------+-------+

flow chart

Client side

Overplus fully support trojan protocol, So it is Ok to use trojan's client. Please make sure disable certificate verification if you use a self issued certificate.

Roadmap

  • Support UDP proxy for trojan protocol
  • Implement a web console to manage overplus
  • Design a new protocol to replace trojan protocol

About

Yet another proxy server that support trojan protocol and v protocol.

License:BSD 2-Clause "Simplified" License


Languages

Language:C++ 87.8%Language:Shell 7.5%Language:CMake 2.8%Language:Makefile 1.0%Language:Dockerfile 1.0%