5
0
mirror of https://github.com/cwinfo/yggdrasil-network.github.io.git synced 2024-11-08 20:00:26 +00:00
yggdrasil-network.github.io/platform-macos.md
2018-06-13 23:38:58 +01:00

3.1 KiB

tags
dontlink

macOS

Yggdrasil is well supported on macOS out of the box, thanks to the inclusion of the utun driver in macOS.

Notes

  • Tested and working out of the box on macOS 10.13 High Sierra.
  • May work in theory on any macOS version with utun support (which was added in macOS 10.7 Lion), although this is untested at present.
  • TAP mode is not supported on macOS, therefore the IfTAPMode option will have no effect.
  • The maximum MTU size supported on macOS is 65535.

Installation

System Integrity Protection in macOS prevents you from copying files into /usr/bin, therefore you should install into /usr/local/bin instead. This may not exist by default so create it if it doesn't exist:

sudo mkdir -p /usr/local/bin

Then download the latest Yggdrasil binary and install it:

sudo cp ~/Downloads/yggdrasil-x.x.xx-darwin-amd64 /usr/local/bin/yggdrasil

Alternatively, compile Yggdrasil from source (below) and install:

sudo cp /path/to/yggdrasil-go/yggdrasil /usr/local/bin/yggdrasil
sudo chmod +x /usr/local/bin/yggdrasil

Generate configuration

Before starting Yggdrasil, you should generate configuration:

sudo yggdrasil -genconf > /etc/yggdrasil.conf

Run Yggdrasil

Run once

Open Terminal.app and start Yggdrasil using your generated configuration:

sudo nohup yggdrasil -useconffile /etc/yggdrasil.conf &

Alternatively, start Yggdrasil in auto-configuration mode:

sudo nohup yggdrasil -autoconf &

Run as a background service

Running as a background system service means that Yggdrasil will automatically start up in the background when your Mac boots. It also ensures that Yggdrasil will be restarted automatically if the process is terminated for some reason.

You can install Yggdrasil as a launchd service using the launchd scripts in the Git repository. Locate the yggdrasil.plist file in the contrib folder of the repository and modify it so that the paths match your installation (i.e. /usr/local/bin/yggdrasil and /etc/yggdrasil.conf) and then install it:

cd /path/to/yggdrasil-go
sudo cp contrib/macos/yggdrasil.plist /Library/LaunchDaemons/
sudo launchctl load /Library/LaunchDaemons/yggdrasil.plist

When using the launchd scripts from the repository, standard output is logged to /tmp/yggdrasil.stdout.log and error output is logged to /tmp/yggdrasil.stderr.log.

If you want to stop the Yggdrasil service and prevent it from being restarted by launchd:

sudo launchctl unload /Library/LaunchDaemons/yggdrasil.plist

Build instructions

macOS has most of the tools needed to build Yggdrasil from source - you just need to install Go 1.9 or later.

  1. Download the latest Go .pkg installer for macOS
  2. Run the installer to install Go on your system
  3. Open Terminal.app, clone the repository and build:
cd /path/to
git clone https://github.com/yggdrasil-network/yggdrasil-go
cd yggdrasil-go
./build
  1. The resulting yggdrasil file is your build - optionally install it into your system, as above.