Skip to content

xyanrch/overplus

Repository files navigation

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.

overplus telegram group

https://t.me/+JfKOqh2wH25kMWFl

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

Client side

A windows client that support v protocol can find in release page. Overplus fully support trojan protocol, so you can use any client which support trojan protocol. Please make sure disable certificate verification if you use a self issued certificate.

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 -c 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"
    },
  "websocketEnabled": false
}

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

Roadmap

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

Stargazers over time

Stargazers over time