Install
Packages
We haven't packaged Mycoria yet for any platform. If you want to help out, it is much appreciated. Specifically, we are looking for help with packaging for Windows WinGet, .deb, .rpm and inclusion in Linux distros.
Manual Install
More platforms are planned, help is welcome!
Windows (amd64, arm64)
Install with powershell as Admin:
# Go to destination where you want to install Mycoria
# Download latest release
Invoke-WebRequest -Uri "https://github.com/mycoria/mycoria/releases/latest/download/mycoria_windows_amd64.exe" -OutFile "mycoria.exe"
# Or, download arm64 version:
# Invoke-WebRequest -Uri "https://github.com/mycoria/mycoria/releases/latest/download/mycoria_windows_arm64.exe" -OutFile "mycoria.exe"
# Generate config file.
.\mycoria.exe config generate | Tee-Object -FilePath "config.yaml"
# Install and enable systemd service
# WIP...
Required Dependency for Windows
Mycoria requires WinTun. Download it here and place wintun.dll
in the same directory as mycoria.exe
Linux (amd64, arm64, armv7)
# Create directory and download binary.
mkdir /opt/mycoria
wget https://github.com/mycoria/mycoria/releases/latest/download/mycoria_linux_amd64 -O /opt/mycoria/mycoria
# Or, download for a different architecture:
# arm64: wget https://github.com/mycoria/mycoria/releases/latest/download/mycoria_linux_arm64 -O /opt/mycoria/mycoria
# armv7: wget https://github.com/mycoria/mycoria/releases/latest/download/mycoria_linux_armv7 -O /opt/mycoria/mycoria
chmod +x /opt/mycoria/mycoria
# Generate config file.
/opt/mycoria/mycoria config generate | tee /opt/mycoria/config.yaml
# Install and enable systemd service
curl https://raw.githubusercontent.com/mycoria/mycoria/master/packaging/mycoria.service | sudo tee /etc/systemd/system/mycoria.service
systemctl enable mycoria # Start at boot.
systemctl start mycoria # Start now.
journalctl -fu mycoria # Live-view logs.
# Check status
# Open Dashboard in Browser: http://[fd00::b909]
# Or, check status with curl:
# View router ID and version
curl [fd00::b909]
# View routing table
curl [fd00::b909]/table
Why does Mycoria need my country code?
It's a vital part of the scalable routing concept.
Read more about it here.
If you pick an incorrect one, it will undermine your routing performance.
DNS on Linux
In order to use .myco
domains, you need to tell Linux to resolve .myco
using Mycoria.
As there are so many different systems and configuration options, help here is much appreciated.
(This is such a mess on Linux - we probably won't try to auto-configure this until it gets better.)
Option 1: systemd-networkd
Create this file
with the following contents:
To make sure the changes are picked up do:
Option 2: systemd-resolved
Create this file
with the following contents:
To make sure the changes are picked up do:
Note: If you have another global resolver configured, make sure it has Domains=~.
set for better compatibility. Otherwise all queries might be first routed to mycoria and then your other resolver. It still works, but you loose a couple milliseconds.
Option 3: NetworkManager
nmcli connection modify mycoria ipv6.dns "fd00::b909"
nmcli connection modify mycoria ipv6.dns-search "myco"
nmcli connection modify mycoria ipv6.dns-options "inet6 timeout:1 attempts:1"
nmcli connection modify mycoria ipv6.dns-priority "1000"
# Check interface settings with:
nmcli connection show mycoria
# Check full status with
nmcli
If this does not work or you have multiple mycoria interfaces in nmcli, try resetting the NetworkManager interface settings for mycoria:
Option 4: IPv6 Router Advertisements (ND/SLAAC)
Mycoria sends router advertisements that advertise the DNS server (RDNSS) and the .myco
domain (DNSSL).
If you can make your Linux accept these, everything might auto-configure.
Starting point:
The rest is up to you.
Option 5: Portmaster
If you are using Portmaster, you can simply add this to the configured DNS Servers: