Yggdrasil on Linux What is Yggdrasil ? ## Yggdrasil is an IPv6 encrypted overlay network that runs ontop your existing internet. This creates a mesh-like network ## that is reachable and visible to other Yggdrasil peers. Requirements: - Go Lang 1.2x.x - Git - Yggdrasil source Install golang: - wget https://go.dev/dl/go1.23.5.src.tar.gz - tar -zxf go1.23*.gz - mv go /usr/local - chown -R root:root /usr/local/go - export PATH=${PATH}:/usr/local/go/bin - go version # go version go1.23.5 linux/amd64 Install git - apt install git Install yggdrasil-go - git clone https://github.com/yggdrasil-network/yggdrasil-go - cd yggdrasil-go - ./build - cp yggdrasil yggdrasilctl /usr/local/bin Generate yggdrasil.conf - yggdrasil -genconf > /etc/yggdrasil.conf Get publickey - yggdrasil -useconffile /etc/yggdrasil.conf -publickey Copy paste publickey in yggdrasil.conf PrivateKey xxxxyyyy <-- this key is auto-generated. Do not remove it. PublicKey paste_public_key_here Change yggdrasil interface name to something you like IfName: ygg0 Change Listen directive for incoming peers Listen: [ tcp://[::]:11223 tls://[::]:11224 quic://[::]:11225 ] Add a few peers. This can be a public or private peer. Peers: [ tls://153.120.42.137:54232 tcp://[2a09:7c45:0:10::1]:7676 quic://[2001:xx:xx:xx::555]:9090?password=some_password ] Yggdrasil supports different protocols.. tcp, tcp+tls and tcp+quic Start the yggdrasil service - systemctl start yggdrasil.service Check that it is running - ps aux | grep yggdrasil - ifconfig ygg0 <-- you should see a 200:xx address. This is your peer address that other peers will see. Yggdrasil also gives you a static /64 prefix - yggdrasilctl getself You should see a /64 subnet. Add an address from this subnet to your physical interface, e.g: eth0 - ip addr add 304:xx:xx:xx::1/64 dev eth0 You can then bind applications to this IP address. For example, nginx webserver. If you are using radvd, you can configure this /64 subnet then restart radvd. Now your LAN clients will get an yggdrasil address from this subnet. Now try to ping the public peers website address: - ping 200:2688:699a:ce30:5897:cd3d:f999:8782 If you get a reply this means yggdrasil is configured and working. Open your browser and visit http://[200:2688:699a:ce30:5897:cd3d:f999:8782]/ Congratz. You are now part of the Yggdrasil network. NOTE: If you want to create a set of private peers between offices, then change the 'Peers' section to match your private peers. A / \ / \ B<--->C Here's a simple diagram of peers A-C. As you add more peers if you want and add them in peer's A-C. Enjoy :) Links: - https://github.com/yggdrasil-network/yggdrasil-go - https://yggdrasil-network.github.io/