/openmptcprouter

OpenMPTCProuter is an open source solution to aggregate multiple internet connections using Multipath TCP (MPTCP) on OpenWrt

Primary LanguageRoffGNU General Public License v3.0GPL-3.0

CircleCI Latest tag Paypal Flattr Liberapay LinkedIn Twitter Atom

OpenMPTCProuter

OpenMPTCProuter is an open source solution to aggregate and encrypt multiple internet connections and terminates it over any VPS which make clients benefit security, reliability, net neutrality, as well as dedicated public IP.

The aggregation is based on Multipath TCP (MPTCP), which is ISP, WAN type, and latency independent "whether it was Fiber, VDSL, SHDSL, ADSL or even 4G", different scenarios can be configured to have either aggregation or failover based on MPTCP.

Aggregation via Multi-link VPN (MLVPN) and Glorytun UDP with multipath support are also supported.

The solution takes advantage of the OpenWRT/LEDE system, which is user friendly and also adds the possibility of installing other packages like VPN, QoS, routing protocols, monitoring, etc. through web-interface or terminal.

Main website: https://www.openmptcprouter.com/

Packages made for OpenMPTCProuter are available here: https://github.com/Ysurac/openmptcprouter-feeds

OpenMPTCProuter VPS script part: https://github.com/Ysurac/openmptcprouter-vps

Install from pre-compiled images

You can download precompiled images from https://www.openmptcprouter.com/

Then copy it to a sdcard:

gunzip omr-*.img.gz
dd bs=4M if=omr-*.img of=/dev/sdX conv=fsync

Install from source

Dependencies

You need a classical build environment like build-essential on Debian and git. Some feeds might not available over git but only via subversion or mercurial.

On Debian you'll need to install the following:

sudo apt install build-essential git unzip ncurses-dev libz-dev libssl-dev openssl-1.0-dev
  python python3-dev python3.5 libelf-dev subversion gettext gawk wget curl rsync perl

Prepare and build

git clone https://github.com/ysurac/openmptcprouter.git
cd openmptcprouter
./build.sh

The script build.sh accepts all make arguments (like -j). When finished, files are located in the directory source/bin.

Custom arch build

By default the build script will create the packages for the x86_64 architecture. You can specify a custom build target by adding a OMR_TARGET environment variable to the build and the corresponding config-$OMR_TARGET file.

To build the project for the raspberry pi 3:

OMR_TARGET="rpi3" ./build.sh

Credits

Our solution is mainly based on: