Значит так. Опустим вопрос “зачем вам вообще может понадобиться Yggdrasil”. Возможно, он у вас уже установлен, но вы ещё не знаете, что можно дополнительно настроить и улучшить. Эта статья описывает, как я настроил Yggdrasil на своём ноутбуке с Manjaro.

Оглавление#

1. Установка#

Установка на Arch - просто:

sudo pacman -S yggdrasil

После установки в системе должен появиться демон yggdrasil.service. Проверяем:

sudo systemctl status yggdrasil

Если всё в порядке - отлично! Если нет, активируем и запускаем:

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil

2. Настройка файервола#

Рекомендую использовать UFW - он проще в управлении, чем ручная настройка ip6tables.

Для домашнего ПК (за NAT)#

⚠️ Это конфигурация именно для домашнего компьютера, который скрыт за роутером с NAT и внешним фаерволом провайдера. В такой среде нет смысла блокировать ВЕСЬ входящий трафик - достаточно защититься от нежелательных подключений из сети Yggdrasil.

# 1. Установка (если ещё не установлен)
sudo pacman -S ufw 

# 2. Сбросим предыдущие правила (на всякий случай)
sudo ufw reset

# 3. Разрешаем ВЕСЬ входящий трафик по умолчанию
# (безопасно за NAT - внешний мир вас не видит)
sudo ufw default allow incoming
sudo ufw default allow outgoing

# 4. Блокируем ВЕСЬ входящий трафик из сети Yggdrasil (200::/7)
sudo ufw insert 1 deny in from 200::/7

# 5. Разрешаем нужные порты ИЗ сети Yggdrasil
# Примеры (вставляем ДО правила запрета, позиция 1):
sudo ufw insert 1 allow in from 200::/7 to any port 80 proto tcp     # HTTP  
sudo ufw insert 1 allow in from 200::/7 to any port 25565 proto tcp  # Minecraft

# 6. Включаем фаервол
sudo ufw enable
sudo systemctl enable ufw.service

# 7. Проверяем результат
sudo ufw status numbered

Пример корректного вывода ufw status numbered:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] any on any               ALLOW IN    200::/7 to any port 80 proto tcp
[ 2] any on any               ALLOW IN    200::/7 to any port 25565 proto tcp
[ 3] any on any               DENY IN     200::/7
[ 4] ...                       ALLOW IN    Anywhere                  # локальные правила

✅ Почему это безопасно для домашней сети:

  • Локальные устройства используют адреса fe80::/10 (link-local) или приватные диапазоны (fd00::/8 для ULA) - они НЕ попадают под 200::/7
  • Ваш роутер и провайдер уже блокируют внешние подключения к вашему ПК
  • Мы защищаемся только от активных подключений ИЗ глобальной сети Yggdrasil

Для публичного сервера (важно!)#

Если вы настраиваете публично доступный сервер (без NAT) например где-то в датацентре:

sudo ufw reset
sudo ufw default deny incoming   # ← КРИТИЧЕСКИ ВАЖНО: всё запрещено по умолчанию
sudo ufw default allow outgoing  # исходящий трафик разрешён (для обновлений, резолва и т.д.)

# 1. Диагностика: разрешаем ICMP (ping) для IPv4 и IPv6
sudo ufw allow proto icmp        # IPv4 ping
sudo ufw allow proto ipv6-icmp   # IPv6 ping

# 2. Локальное управление: разрешаем доступ с доверенных сетей - нужное выбрать и применить
sudo ufw allow from 192.168.0.0/16   # домашние сети
sudo ufw allow from 10.0.0.0/8       # корпоративные сети
sudo ufw allow from 172.16.0.0/12    # дополнительные приватные сети
sudo ufw allow from fe80::/10        # link-local IPv6
sudo ufw allow from fd00::/8         # ULA (Unique Local Addresses)

# 3. Основные сервисы из обычного интернета (IPv4 + глобальный IPv6)
sudo ufw allow 22/tcp                # SSH (обязательно!)
sudo ufw allow 21/tcp                # FTP
sudo ufw allow 80/tcp                # HTTP
sudo ufw allow 443/tcp               # HTTPS
sudo ufw allow 25/tcp                # SMTP

# 4. Фильтрация трафика ИЗ сети Yggdrasil (200::/7):
# Сначала разрешаем ТОЛЬКО нужные порты из Yggdrasil
sudo ufw insert 1 allow in from 200::/7 to any port 22 proto tcp   # SSH через Ygg
sudo ufw insert 1 allow in from 200::/7 to any port 80 proto tcp   # HTTP через Ygg
sudo ufw insert 1 allow in from 200::/7 to any port 443 proto tcp  # HTTPS через Ygg

# Затем блокируем ВЕСЬ остальной входящий трафик из сети Yggdrasil
sudo ufw insert 1 deny in from 200::/7

sudo ufw enable
sudo systemctl enable ufw.service

⚠️ Важно: Порядок правил критичен! Разрешающие правила для 200::/7 должны находиться выше запрещающего правила. Команды insert 1 гарантируют правильный порядок:

[ 1] 200::/7 → 443/tcp   ALLOW
[ 2] 200::/7 → 80/tcp    ALLOW
[ 3] 200::/7 → 22/tcp    ALLOW
[ 4] 200::/7             DENY
[ 5] 0.0.0.0/0 → 22/tcp   ALLOW  # глобальный SSH
... остальные правила

3. Настройка пиров#

Есть два способа подключиться к пирам: через графическую утилиту или вручную.

Способ 1: yggtray#

Установите yggtray. Это портативное AppImage - ничего дополнительно устанавливать не нужно.

  1. Запустите yggtray
  2. При запросе настроить файрвол - откажитесь (мы уже настроили UFW вручную)
  3. Трей → “Управление пирами” → “Обновить” → “Тест” → “Применить”

Утилита автоматически найдёт быстрые и стабильные пиры в вашем регионе.

Способ 2: ручная настройка (без yggtray)#

Если не хотите устанавливать дополнительные программы, пиры можно добавить вручную. Актуальные списки публичных пиров:

Выберите несколько пиров (лучше из разных регионов для отказоустойчивости) и добавьте их в конфиг:

sudo nano /etc/yggdrasil.conf

В секцию Peers добавьте адреса в формате (адреса примерные):

Peers: [
  tls://123.45.67.89:12345,
  tls://42.32.32.12:56789
]

После сохранения перезапустите сервис:

sudo systemctl restart yggdrasil

4. Настройка распределённого DNS Alfis#

На этом этапе наша установка уже рабочая, но не хватает пары мелочей. Обращаться к ресурсам по IPv6-адресам - не очень удобно. Существует система распределённого DNS Alfis, где есть специально выделенная доменная зона .ygg.

Нам нужно настроить поддержку Alfis в системе. Для этого создаём файл:

sudo nano /etc/systemd/resolved.conf.d/alfis.conf

Со следующим содержимым:

[Resolve]
DNS=308:84:68:55:: 308:25:40:bd:: 308:62:45:62:: 308:c8:48:45:: 303:71a7:ae08:b479::53 301:84f7:4bc0:2f3a::53
Domains=~anon ~btn ~conf ~index ~merch ~mirror ~mob ~screen ~srv ~ygg

Адреса актуальны на январь 2026 года. Если они устарели, можно найти новые здесь.

Примечание: Этот конфиг файл необходимо создать именно в указанной директории, иначе systemd-resolved не применит настройки.

Перезапускаем демон и активируем, если отключен:

sudo systemctl enable systemd-resolved
sudo systemctl restart systemd-resolved

И теперь можно посещать сайты в сети по красивым адресам. Например, maksimushka.ygg или список сайтов на index.ygg. Мне нравится слушать радио на beat.ygg.

5. Yggmail - децентрализованная почта#

Если зайти на сайт hash.ygg (Mattermost), то при регистрации потребуется ввести email. Можно использовать обычную почту из Clearnet, но можно запустить yggmail и получить децентрализованный почтовый ящик.

Ваш адрес будет выглядеть примерно так:

617b5772c6d10feda41fc6e0e43b976c4cc9383d3729310d3dc9e1332f0d9acd@yggmail

Более подробный гайд по установке можно посмотреть здесь. Но если у вас уже запущен Yggdrasil, то для запуска почты достаточно команды:

yggmail -multicast

Yggmail автоматически найдёт запущенный Yggdrasil. После запуска в консоли отобразится ваш почтовый адрес. Для работы с почтой можно использовать Delta Chat - он поддерживает yggmail и при вводе адреса с доменом @yggmail автоматически всё настроит.

Недостаток этой почты в том, что нужно держать yggmail запущенным постоянно. Если ваше устройство будет отключено от сети, письма не будут доставлены и исчезнут.

6. Alfis: регистрация своего домена#

Если вы хотите зарегистрировать свой домен, воспользуйтесь программой Alfis. Например, чтобы развернуть сайт или сервис, или чтобы делиться с друзьями, с которыми хотите поиграть в Minecraft, не длинным IPv6-адресом, а каким-нибудь your_nickname.ygg:25565.

Программа есть в AUR, устанавливаем так:

yay -S alfis

После установки запускаем приложение. Чтобы начать майнинг, нужно сначала создать ключ. Делается это на первой вкладке кнопкой “Mine new key”. Я запустил процесс на ночь, а утром получил готовый результат.

ВАЖНО! Когда ключ смайнится, его ОБЯЗАТЕЛЬНО нужно сохранить кнопкой “Save Key”. Если не сохранить, при следующем запуске вы не сможете его восстановить.

Теперь переходим на вторую вкладку. Нажимаем “New domain” и заполняем поля:

Для примера, для сайта:

domain: maksimushka
zone: ygg

Записи добавляются кнопкой “Add record”:

Первая запись:

  • Name: @ (это означает, что запросы будут попадать на адрес maksimushka.ygg)
  • Type: AAAA (для IPv6-адресов, которые используются в Yggdrasil)
  • Data/host: 228:fd47:dce:9fd7:52b0:889d:f1e:29be (адрес вашего сервера)

Остальные поля трогать необязательно. Если интересно, поищите информацию о DNS-записях - принципы те же, что и в обычном DNS.

Другие примеры использования поля Name:

  • * - все запросы с любых поддоменов будут попадать на указанный хост
  • example - запросы с example.maksimushka.ygg

В разделе advanced можно указать информацию о домене и оставить контакты.

Когда всё готово и перепроверено, нажимаем “Mine domain” и ждём. У меня майнинг занял около 3 часов. После этого нужно некоторое время подождать (не закрывая Alfis), чтобы другие участники сети подписали и приняли вашу запись.

Если вы хотите внести изменения в уже существующий домен, принцип тот же, только вы будете не создавать новый домен, а редактировать существующий из списка. Все изменения тоже нужно майнить.

Срок действия домена - 1 год с момента последнего майнинга. Если срок скоро истечёт, просто откройте домен в Alfis и без изменений нажмите “Mine domain”.

7. Майнинг адреса Yggdrasil#

Подробнее о важности майнинга адресов я описал тут: сслыка

Если вам не нравится ваш текущий IPv6-адрес в Yggdrasil, вы хотите сделать его короче, добавить осмысленные символы или увеличить первую октету, можно воспользоваться майнером адресов: yggdrasil-vanity.

Программа работает на GPU, с флагом -f позволяет сохранять результаты в CSV-файл. По умолчанию ищет адреса с наибольшей первой октетой (201:, 228: и т.д.), но с помощью флага -r можно задать regex-выражение для поиска адресов по определённым правилам.

Полученный адрес нужно вставить в /etc/yggdrasil.conf (или /etc/yggdrasil/yggdrasil.conf) и перезапустить Yggdrasil:

sudo systemctl restart yggdrasil

Готово! Теперь ваш компьютер будет в сети с новым адресом.

8. Полезные ссылки#

Основные ресурсы:

Чаты и коммуникация:

Надеюсь, эта статья поможет вам освоиться в сети Yggdrasil! Если есть вопросы - заходите в чаты, там всегда помогут.