Yggdrasil is well supported on macOS out of the box, thanks to the inclusion of the
utun driver in macOS.
utunsupport (which was added in macOS 10.7 Lion), although this is untested at present.
IfTAPModeoption will have no effect and will default to TUN mode automatically.
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 sudo chmod +x /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
Before starting Yggdrasil, you should generate configuration:
sudo yggdrasil -genconf > /etc/yggdrasil.conf
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 &
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 make sure that the paths match your installation (i.e.
/etc/yggdrasil.conf) and then copy it into
If you already have the source repository to hand, you can instead retrieve
yggdrasil.plist from there instead of downloading as above:
cd /path/to/yggdrasil-go sudo cp contrib/macos/yggdrasil.plist /Library/LaunchDaemons/
yggdrasil.plist file is in
/Library/LaunchDaemons/, you can start the service:
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
If you want to stop the Yggdrasil service and prevent it from being restarted by launchd:
sudo launchctl unload /Library/LaunchDaemons/yggdrasil.plist
macOS has most of the tools needed to build Yggdrasil from source - you just need to install Go 1.9 or later.
cd /path/to git clone https://github.com/yggdrasil-network/yggdrasil-go cd yggdrasil-go ./build
yggdrasilfile is your build - optionally install it into your system, as above.