5
0
mirror of https://github.com/cwinfo/yggdrasil-network.github.io.git synced 2024-11-14 02:10:28 +00:00
yggdrasil-network.github.io/platform-linux.md
2018-12-09 12:08:59 +00:00

5.1 KiB

tags sitemap
dontlink true

Linux

Yggdrasil is well supported on Linux.

Notes

  • Should work with any kernel that includes tun and/or tap.
  • The maximum MTU size supported on Linux is 65535 in TUN mode and 65521 in TAP mode.
  • Binary .deb packages are available for Debian, Ubuntu, elementaryOS and similar distributions.
  • Binary .rpm packages are available for Red Hat Enterprise Linux, Fedora, CentOS and similar distributions.
  • IPv6 needs to be enabled in order for Yggdrasil to work - IPv6 is usually enabled by default, but if not, enable using sysctl -w net.ipv6.conf.all.disable_ipv6=0 or similar.
  • If using TUN/TAP then /dev/net/tun should be present on your system.

Debian, Ubuntu, elementaryOS (with systemd)

Debian binary packages exist to simplify the installation of Yggdrasil. These will also work on any Debian-based distribution.

From CircleCI

Visit our Builds page and download the relevant .deb file, then install it on your system. If you want to install the latest .deb from the master branch:

curl -so- "https://circleci.com/api/v1.1/project/github/yggdrasil-network/yggdrasil-go/latest/artifacts?branch=master&filter=successful" | \
egrep -o "https.*yggdrasil\-.*$(dpkg --print-architecture).deb" | \
while read line; do curl -O $line && dpkg -i $(basename $line); done

Configuration will be generated automatically into /etc/yggdrasil.conf when the package is installed, and the Yggdrasil service will automatically be installed into systemd and started.

From an Internet repository

To start with, add the repository key to your apt keyring:

sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 569130E8CA20FBC4CB3FDE555898470A764B32C9

Add the repository:

echo 'deb http://neilalexander.s3.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
sudo apt-get update

Install Yggdrasil:

sudo apt-get install yggdrasil

Configuration will be generated automatically into /etc/yggdrasil.conf when the package is installed, and the Yggdrasil service will automatically be installed into systemd and started.

Red Hat Enterprise Linux, Fedora, CentOS (with systemd)

RPM binary packages exist to simplify the installation of Yggdrasil. These will also work on any other RPM-based distribution.

From CircleCI

Visit our Builds page and download the relevant .rpm file, then install it on your system:

sudo rpm -i yggdrasil...rpm

Configuration will be generated automatically into /etc/yggdrasil.conf when the package is installed, and the Yggdrasil service will automatically be installed into systemd and started.

From an Internet repository

To start with, download the repository key:

sudo rpm --define="%_hkp_keyserver http://pool.sks-keyservers.net" --import 0x5898470A764B32C9

Add the repository:

sudo cat > /etc/yum.repos.d/yggdrasil.repo << EOF
[yggdrasil]
name = Yggdrasil
baseurl = https://neilalexander.s3.eu-west-2.amazonaws.com/rpm/
gpgcheck=1
EOF

Install Yggdrasil:

sudo dnf install yggdrasil

Enable and start the service after install/upgrade:

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil

Other Distributions

Download the latest Yggdrasil binary and install it:

sudo cp ~/yggdrasil-x.x.xx-linux-amd64 /usr/bin/yggdrasil
sudo chmod +x /usr/bin/yggdrasil

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

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

Generate configuration

If you do not have a configuration file, you should generate configuration before starting Yggdrasil:

sudo yggdrasil -genconf > /etc/yggdrasil.conf

Run Yggdrasil

Run once

Open a shell 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 with systemd

systemd service scripts are included in the contrib/systemd/ folder so that it runs automatically in the background (using /etc/yggdrasil.conf for configuration).

Copy the service files into /etc/systemd/system, copy yggdrasil into your $PATH, i.e. /usr/bin, and then enable the service:

systemctl enable yggdrasil
systemctl start yggdrasil

Once installed as a systemd service, you can read the yggdrasil output:

systemctl status yggdrasil
journalctl -u yggdrasil

Build instructions

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

  1. Install Go 1.11 or later, godeb is recommended for Debian-based distributions).
  2. Open a shell, 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.