3.0 KiB
n2n on macOS
In order to use n2n on macOS, you first need to install support for TUN/TAP interfaces:
brew tap homebrew/cask
brew cask install tuntap
If you are on a modern version of macOS (i.e. Catalina), the commands above will ask you to enable the TUN/TAP kernel extension in System Preferences → Security & Privacy → General.
For more information refer to vendor documentation or the Apple Technical Note.
Build on Windows
Requirements
In order to build on Windows the following tools should be installed:
-
Visual Studio. For a minimal install, the command line only build tools can be downloaded and installed from https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017
-
Cmake
-
(optional) The OpenSSL library. Prebuild binaries can be downloaded from https://slproweb.com/products/Win32OpenSSL.html . The full version is required (not the "Light" version). The Win32 version of it is usually required for a standard build.
NOTE: in order to skip OpenSSL compilation, edit CMakeLists.txt and replace
OPTION(N2N_OPTION_AES "USE AES" ON) with OPTION(N2N_OPTION_AES "USE AES" OFF)
NOTE: to static link OpenSSL, add the
-DOPENSSL_USE_STATIC_LIBS=true
option to the cmake command
In order to run n2n:
- The TAP drivers should be installed into the system. They can be installed from http://build.openvpn.net/downloads/releases (search for "tap-windows")
- If OpenSSL has been linked dynamically, the corresponding .dll file should be available into the target computer
Build (CLI)
In order to build from the command line, open a terminal window and run the following commands:
md build
cd build
cmake ..
MSBuild edge.vcxproj /t:Build /p:Configuration=Release
MSBuild supernode.vcxproj /t:Build /p:Configuration=Release
NOTE: if cmake has problems finding the installed OpenSSL library, try to download the official cmake and invoke it with:
C:\Program Files\CMake\bin\cmake
The compiled exe files should now be available under the Release directory.
Run
The edge.exe
program reads the edge.conf
file located into the current directory if no option is provided.
Here is an example edge.conf
file:
-c=mycommunity
-k=mysecretkey
# supernode IP address
-l=1.2.3.4:5678
# edge IP address
-a=192.168.100.1
The supernode.exe
program reads the supernode.conf
file located into the current directory if no option is provided.
Here is an example supernode.conf
file:
-l=5678
See edge.exe --help
and supernode.exe --help
for a list of supported options.
General Building Options
Low Memory Footprint
Some parts of the code (well, one for now: Pearson hashing) offer an optional low memory footprint if compiled using with the macro LOW_MEM_FOOTPRINT
. GCC will make it happen with -DLOW_MEM_FOOTPRINT
eventually specified along with other options of choice during configuration:
./configure CFLAGS="-O3 -march=native -DLOW_MEM_FOOTPRINT"