====== Opentracker ======
Для организации трекера в сети [[yggdrasil:yggdrasil|Yggdrasil]], подойдет любой сервер, с поддержкой IPv6, одним из таких является [[https://erdgeist.org/arts/software/opentracker/|Opentracker]] - сервер с открытым исходным кодом, написанный на [[wpru>Си_(язык_программирования)|языке C]].
Opentracker не требует базы данных, так как вся информация о пирах хранится в оперативной памяти.
===== Установка =====
Выполняем официальную инструкцию, предварительно раскомментировав строку ''-DWANT_V6'' в файле [[https://erdgeist.org/gitweb/opentracker/tree/Makefile|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
===== Автозапуск =====
==== crontab ====
@reboot /path/opentracker -p 6969 -P 6969
* -p 6969 - TCP/HTTP
* -P 6969 - UDP
* интерфейс для бинда указывается аргументом -i 200:xxxx:xxxx
==== systemd ====
[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
* %%systemctl restart opentracker%% - запуск
* %%systemctl enable opentracker%% - автозапуск при старте системы
* %%systemctl status opentracker%% - текущий статус сервиса
===== Проксирование =====
Чтобы трекер отдавал **хост_пира**:порт_пира вместо **хост_сервера**:порт_пира, OpenTracker должен быть скомпилирован с флагом:
-DWANT_IP_FROM_PROXY
* или раскоментировать строку FEATURES+=-DWANT_IP_FROM_PROXY в Makefile
По-умолчанию, 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
* где 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148 - адрес прокси
* полная версия файла конфигурации доступна в opentracker.conf.sample
Файл конфигурации указывается аргументом -f:
/usr/local/bin/opentracker -i 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148 -P 6969 -p 3001 \
-f /path/to/opentracker.conf
* -P 6969 - UDP, не проксируется
* -p 3001 - TCP, ожидает HTTP от прокси на соответствующем 6969
Проверить адреса пиров можно с помощью CLI утилиты [[yggdrasil:bittorrent:tools#btpeer]].
===== Подключение =====
Для тестирования раздачи, а также приёма подключений в сети Yggdrasil, торрент-клиент необходимо настроить для прослушивания локального интерфейса или адреса, иначе пир будет идентифицирован по IP сети по-умолчанию (Интернет) и передавать этот адрес трекеру.
На примере [[yggdrasil:bittorrent:qbittorrent|qBittorrent]], сделать это можно в **Preferences** - **Advanced** - **Network interface** или **Optional IP address to bind to**
При наличии фаервол, условием для проверки сидирования данных в сети Yggdrasil является открытие порта, определенного случайно или заданного явно в настройках BitTorrent клиента.
Также, при смене параметров интернет-подключения (VPN или proxy), важно перезапустить BitTorrent клиент.
===== Ссылки =====
* [[https://erdgeist.org/arts/software/opentracker/|Официальный сайт]]
* [[https://radjik.livejournal.com/195622.html|О настройке проксирования трафика посредством nginx для организации кластеров]]
* [[https://github.com/r4sas/opentracker-i2p|Версия OpenTracker для I2P]]
* [[yggdrasil:bittorrent:qbittorrent#встроенный_трекер|Торрент-трекер на базе qBittorrent]]