Для организации трекера в сети Yggdrasil, подойдет любой сервер, с поддержкой IPv6, одним из таких является Opentracker - сервер с открытым исходным кодом, написанный на языке C.
Opentracker не требует базы данных, так как вся информация о пирах хранится в оперативной памяти.
Выполняем официальную инструкцию, предварительно раскомментировав строку -DWANT_V6 в файле Makefile, таким образом сервер будет оперировать исключительно IPv6
cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat cd libowfat make cd .. # LEGACY: cvs -d:pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co opentracker git clone git://erdgeist.org/opentracker cd opentracker make
Opentracker работает на порту 6969, поэтому для входящих подключений добавим правило в iptables с помощью утилиты ufw
ufw allow 6969
В случае, если хотим обслуживать соединения исключительно в сети yggdrasil
ufw allow from 0200::/7 to any port 6969
@reboot /path/opentracker -p 6969 -P 6969
[Unit] After=network.target Wants=network.target [Service] Type=simple # useradd -s /usr/sbin/nologin -Mr opentracker User=opentracker Group=opentracker ExecStart=/usr/local/bin/opentracker -p 6969 -P 6969 # mkdir /var/log/opentracker && chown opentracker:opentracker /var/log/opentracker StandardOutput=file:///var/log/opentracker/debug.log StandardError=file:///var/log/opentracker/error.log [Install] WantedBy=multi-user.target
Чтобы трекер отдавал хост_пира:порт_пира вместо хост_сервера:порт_пира, OpenTracker должен быть скомпилирован с флагом:
-DWANT_IP_FROM_PROXY
По-умолчанию, OpenTracker отклоняет заголовок X-Forwarded-For с неизвестных хостов. Для добавления IP прокси-сервера в «белый список», необходимо создать файл конфигурации со следующим содержимым:
# II # If opentracker lives behind one or multiple reverse proxies, # every http connection appears to come from these proxies. In order to # take the X-Forwarded-For address instead, compile opentracker with the # WANT_IP_FROM_PROXY option and set your proxy addresses or networkss here. # # access.proxy 10.0.1.23 # access.proxy 192.0.0.0/8 # access.proxy 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148
Файл конфигурации указывается аргументом -f:
/usr/local/bin/opentracker -i 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148 -P 6969 -p 3001 \
-f /path/to/opentracker.conf
Проверить адреса пиров можно с помощью CLI утилиты btpeer.
Для тестирования раздачи, а также приёма подключений в сети Yggdrasil, торрент-клиент необходимо настроить для прослушивания локального интерфейса или адреса, иначе пир будет идентифицирован по IP сети по-умолчанию (Интернет) и передавать этот адрес трекеру.
На примере qBittorrent, сделать это можно в Preferences - Advanced - Network interface или Optional IP address to bind to
При наличии фаервол, условием для проверки сидирования данных в сети Yggdrasil является открытие порта, определенного случайно или заданного явно в настройках BitTorrent клиента.
Также, при смене параметров интернет-подключения (VPN или proxy), важно перезапустить BitTorrent клиент.

Обсуждение
Transmission раздает на закрытом порту, но qBittorrent отказывается, пока порт не открыть, UPnP/NAT-PMP включен..
Спасибо!
Поэтому, включен UPnP или нет, условием является открытие порта локально. Все что между локальным пиром А и Б не имеет значения кроме прямого соединения или моста public peer.
Вероятно проблема libtorrent или opentracker, так как оба сервера возвращают ошибку 'Address family not supported'
http://[200:1e2f:e608:eb3a:2bf:1e62:87ba:e2f7]/announce
http://[201:23b4:991a:634d:8359:4521:5576:15b7]:2023/announce