====== 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]]