/muon

A fast stateless VPN with simple obfuscation

Primary LanguageCGNU General Public License v3.0GPL-3.0

muon

License Build Status

A fast stateless VPN with simple obfuscation, inspired by ShadowVPN and GoHop.

Features

  1. Stateless
  2. Perform naïve obfuscation by compression, padding and delayed transmission
  3. Frequent port hopping every 0.5s to escape traffic monitoring

Supported platforms

  • GNU/Linux
  • macOS

Dependencies

  1. libmill

  2. minilzo (embedded)

Pre-builds

Platform Architecture URL
GNU/Linux x86_64 https://s3.pxx.io/snapshot/muon/muon-x86_64
  i686 https://s3.pxx.io/snapshot/muon/muon-i686
  armv6l https://s3.pxx.io/snapshot/muon/muon-armv6l
  armv7l https://s3.pxx.io/snapshot/muon/muon-armv7l
  aarch64 https://s3.pxx.io/snapshot/muon/muon-aarch64

Build

1. Linux/OS X

install GNU Autotools, then:

# build libmill
curl -s -L https://github.com/sustrik/libmill/archive/master.tar.gz | tar -zxf -
mv libmill-master libmill
cd libmill
./autogen.sh
./configure --enable-shared=false
make
cd ../
# build muon
autoreconf -if
# export CFLAGS=-march=native
export CPPFLAGS=-I$(pwd)/libmill
export LDFLAGS=-L$(pwd)/libmill/.libs
./configure --prefix=/usr --sysconfdir=/etc
make
make check
sudo make install

on OS X, install via Homebrew is also supported:

brew install --HEAD libmill
brew install --HEAD https://raw.githubusercontent.com/XiaoxiaoPu/muon/master/contrib/homebrew/muon.rb

2. Cross compile

# setup cross compile tool chain:
export PATH="$PATH:/pato/to/cross/compile/toolchain/bin/"
# build libmill
curl -s -L https://github.com/sustrik/libmill/archive/master.tar.gz | tar -zxf -
mv libmill-master libmill
cd libmill
./autogen.sh
./configure --enable-shared=false --host=arm-unknown-linux-gnueabihf
make
cd ../
# build muon
autoreconf -if
# export CFLAGS=-march=native
export CPPFLAGS=-I$(pwd)/libmill
export LDFLAGS=-L$(pwd)/libmill/.libs
./configure --host=arm-unknown-linux-gnueabihf \
    --prefix=/usr --sysconfdir=/etc
make

3. Build with static linking

append --enable-static while running ./configure.

Usage

See man:muon(8).

License

Copyright (C) 2014 - 2016, Xiaoxiao i@pxx.io

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.