Skip to content

Compilation Guide (WIP)

Andrew edited this page Dec 20, 2020 · 9 revisions

If you want the latest features of SoftEtherVPN then this is the way to go. The Master branch contains many of the new features and bug fixes yet at the same time can be more buggy and/or different than previous versions of the VPN server/client. As these changes are new and not in an offical release it may not be well-documented or well supported in the greater SoftEther community. THIS IS NOT FOR PRODUCTION USE! DO NOT USE THIS IN A PRODUCTION OR MISSION CRITICAL ENVIRONMENT!

GNU/Linux

Compile the Master Branch

Dependancy Installation

SoftetherVPN requires the following dependencies in order to compile the master branch as of 12/2020

  • Insert Dependencies here
  • cmake
  • C compiler and C Library (BSD/GNU libc, musl, etc)
  • g++
  • OpenSSL or LibreSSL (crypto, ssl)
  • libiconv
  • readline
  • ncurses
  • POSIX threads library (pthread)
  • make (GNU, BSD, etc.)

Debain/Ubuntu:

sudo apt -y install cmake gcc git g++ libncurses5-dev libreadline-dev libssl-dev make zlib1g-dev

CentOS/RHEL:

sudo yum -y groupinstall "Development Tools

sudo yum -y install cmake ncurses-devel openssl-devel readline-devel zlib-devel

openSUSE

sudo zypper refresh && zypper --non-interactive install libopenssl-devel cmake gcc gcc-c++ tar gzip git ncurses-devel zlib-devel readline-devel

.

Pull and compile the code

git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git

cd SoftEtherVPN

git submodule init && git submodule update

./configure

make -C build

From here SoftEtherVPN Server, Client, Bridge, and Vpncmd are installed in the build Directory as well as the debug and developer tools. You can run SoftEtherVPN Server after compilation by running ./vpnserver start inside the build directory. If you'd like to install this version of SoftEther run make install to install it on your system.

That is all you need to do. Now run cd build and then ./vpnserver start to start the VPN server or ./vpntest s to run the VPN server in debug mode. The same goes for the bridge and client.

.

Compile The Wireguard Branch

Currently if you want Wireguard support you will need to compile a fork of SoftEther from the developer Davide who is currently working on implementing WireGuard into SoftEther. Since it has not been approved to be merged into the offical source code yet you will need to follow these instructions to compile it. I will refer to this version as proto-wireguard throughout this section.

Dependancy Installation

SoftetherVPN requires the following dependencies in order to compile the proto-wireguard branch as of 12/2020

  • cmake
  • C compiler and C Library (BSD/GNU libc, musl, etc)
  • g++
  • OpenSSL or LibreSSL (crypto, ssl)
  • libiconv
  • readline
  • ncurses
  • POSIX threads library (pthread)
  • make (GNU, BSD, etc.)
  • Ninja
  • Libsodium

Debain/Ubuntu:

sudo apt -y install cmake gcc g++ libncurses5-dev libreadline-dev libssl-dev make zlib1g-dev ninja-build libsodium-dev pkg-config

CentOS/RHEL:

sudo yum -y groupinstall "Development Tools

sudo yum -y install cmake ncurses-devel openssl-devel readline-devel zlib-devel ninja-build libsodium-dev

.

Pull and compile the code

git clone https://github.com/davidebeatrici/SoftEtherVPN.git

cd SoftEtherVPN

git checkout proto-wireguard

git submodule init && git submodule update

mkdir build && cd build

cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DISA_EXTENSION=SSE2 ..

ninja

That is all you need to do. Now run cd build if you are not already there and then ./vpnserver start to start the VPN server or ./vpntest s to run the VPN server in debug mode. The same goes for the bridge and client.

.

Microsoft Windows

Compile the Master Branch

SoftetherVPN requires the following programs and components to be installed on your machine to compile the Master branch as of 12/2020

  • Windows XP, Vista, 7, 8 or newer
  • Visual Studio 2008 (last version of VS to maintain compatibility with Windows 9x and NT 4.0)

MacOS

Need someone else to do this one

BSD

//TO DO

Other UNIX

Solaris, etc... Can't do this one myself.