website/content/posts/yggdrasil.md
fzorb b12366111e
All checks were successful
pipeline / deploy-job (push) Successful in 38s
add tor & yggdrasil
2024-11-23 15:12:23 +02:00

2.8 KiB

+++ title = 'Running a Yggdrasil peer on a shoestring budget' date = 2024-11-23T11:10:19+02:00 draft = false +++

Recently I have been seeing this weird "Yggdrasil Network" mentioned alongside Tor and I2P. A few days ago I have started researching it, and it is really cool. Basically, it is a mesh network, but it encrypts your traffic. I think that's really cool, and while not really a privacy tool, I'd say it would be a great way to avoid any interference in your traffic by your ISP or similar.

So I decided that I should probably make a Yggdrasil peer. Being on a shoestring budget (as I've mentioned in the title), I decided to go with Gullo's Hosting's cheapest NAT OpenVZ VPS in Bulgaria, which should be fine, as Yggdrasil doesn't need a specific port. I also decided to go with Debian 11, because it would have a smaller footprint compared to Debian 12, and even a few megabytes would go a long way given that we have 2GB of storage... yikes!

Step 0. Configure the vps properly

I have did a mistake when initially configuring Yggdrasil: I didn't enable TUN/TAP. To be completely honest, I didn't even know that the VPS had any control panel other than the one in the billing panel. I only learnt of this when I was panicking about the fact that Yggdrasil would crash, as it couldn't find /dev/net/tun. For a bit I thought it was an issue with Gullo, but I soon learnt that it was actually an issue with me being stupid and not enabling that in the VPS' panel. Oops! Make sure to do that if you use Gullo's Hosting, like I am.

Step 1. Install Yggdrasil

The Yggdrasil documentation has a pretty good guide which you can follow here.

Step 2. Configure Yggdrasil

This is the more tricky part. The first thing I did was get what port range I was allocated by Gullo's Hosting, which can be done easily. I then decided to peer with a bunch of peers discovered here.

Step 2.a Peering with others

You have to peer with others to access the wider Yggdrasil Network. You can find peers here and you add them to your /etc/yggdrasil/yggdrasil.conf like so:

    Peers: [
        protocol://peer:port
    ]

Step 2.b Making your server be able to peer with others

This is pretty simple. You just choose a random port within the range provided by Gullo and add it your config like so:

    Listen: [
        tcp://0.0.0.0:port
        tls://0.0.0.0:port
    ]

Step 3. Profit

Now you've succesfully configured a Yggdrasil peer for just $3.50/year! Wow! To see my finished work, or to peer with me, use tcp://bg1-ygg.kogaionon.xyz:13710 or tls://bg1-ygg.kogaionon.xyz:13711.

Also, this site is now available over Yggdrasil here!