Skip to content
Ycarus edited this page Feb 13, 2018 · 44 revisions

It's in alpha state, documentation is not finished yet.

OpenMPTCProuter use MultiPath TCP to aggregate multiple Internet connections and OpenWrt.

The image can be installed on x86_64 with UEFI and Raspberry PI 3. A VPS is also needed.

Install from pre-compiled images

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

For Raspberry PI 3

Download the image, then copy it to a sdcard:

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

Install the VPS

You need to have a MPTCP kernel and shadowsocks-libev installed on the VPS.

This will not work on Scaleway VPS (they don't allow kernel changes).

Tested on OVH (limit to 100Mb/s) and Firstheberg VPS.

Automatically

On Debian 9 Stretch

wget -O - http://www.openmptcprouter.com/server/debian9-x86_64.sh | sh

This will install and configure mptcp kernel, shadowsocks, glorytun and shorewall (as firewall). Key for shadowsocks and glorytun are generated by the script.

SSH port is changed to 65222.

Shadowsocks port is 65101.

Glorytun port is 65001.

Manually

On Debian 9 Stretch

As root:

apt-get update
apt-get install dirmngr
apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 379CE192D401AB61
echo 'deb http://dl.bintray.com/cpaasch/deb jessie main' >> /etc/apt/sources.list
apt-get update
apt-get install linux-mptcp
sh -c 'printf "deb http://deb.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/stretch-backports.list'
apt update
apt -t stretch-backports install shadowsocks-libev

Configure Shadowsocks

In /etc/shadowsocks-libev:

{
    "server":["[::0]", "0.0.0.0"],
    "server_port":65101,
    "local_port":1081,
    "password":"MySecretPassword",
    "timeout":120,
    "method":"aes-256-cfb",
    "verbose":2,
    "prefer_ipv6": true,
    "fast_open": true,
    "reuse_port": true,
    "mptcp": true
}

To optimize shadowsocks, as root:

wget -O /etc/sysctl.d/90-shadowsocks.conf https://www.openmptcprouter.com/server/shadowsocks.conf
sysctl --system

Run shadowsocks

As root:

systemctl start shadowsocks-libev-server@config.service