Retracker.local

Материал из ТХАБ.РФ
Версия от 20:18, 6 ноября 2016; Админ (обсуждение | вклад) (1 версия импортирована)

Перейти к: навигация, поиск

Ретрекер

В связи с тем, что теперь добавляется ретрекер http://retracker.local/announce, здесь приводится несколько способов по его настройке.

<spoiler text="Подробности от admin"> Сия информация предназначена и может быть полезна только для провайдеров. Обычный пользователь никак не может использовать ничего из того что написано ниже, и от него не требуется никаких дополнительных действий, для того чтобы использовать нижеописанные возможности.

Что такое ретрекер, зачем он нужен и как работает можно прочитать здесь.

Далее, самое важное:

C 18 сентября 2009 года, все торренты с rutracker.org идут с уже прописанным ретрекером по адресу http://retracker.local/announce.

Таким образом, чтобы запустить в свой сети ретрекер, вы должны проделать следующие операции:

0. Быть провайдером и, соответственно, иметь возможность управления ДНС зонами внутри своей сети (сетей).

1. Скачать кучку кода по адресу http://rutracker.org/retracker.zip и поставить на одном своих серверов, который будет ретрекером.
Технических требований особых нет - гигагерцовый селерон потянет ретрекер на сеть из 50-100 тыс пользователей.
Адрес анноунсера ретрекера http://retracker.local/announсe - будьте внимательны!

2. Поднять внутри своей сети на днс-сервере зону retracker.local, которая будет указывать на собранный в п.1 сервер.

2а. Для тех, кто в пиринге, поднять общую для всех сетей пиринга внутреннюю зону, которая будет указывать на единый для всех сервер.

3. Убедиться, что все работает, - внутри сети у всех клиентов резолвится этот адрес, и запросы на него обрабатываются ретрекером.

4. С технической стороны весь процесс настройки описан тут -> http://wiki.rutracker.org/Retracker.local

Теперь некоторые замечания по сервису:

1. Retracker.local прописывается только в российский сегмент интернета. Сделано это потому, что зарубежным товарищам вряд ли придет в голову делать ретрекеры для rutracker.org.
Впрочем, если вы провайдер, и всё-таки хотите сделать ретрекер, то просто напишите ЛС юзернейму retracker и в свободной форме попросите включить в список для выдачи ваши диапазоны IP-адресов.
Это касается в основном провайдеров из ближнего зарубежья - Украины, Казахстана, Белоруссии, Прибалтики и т.п.

2. Те ретрекеры, что уже были прописаны и настроены, продолжают работать в том же духе. Однако их операторам все же рекомендуется поднять стандартный для всех retracker.local и ориентироваться на него в дальнейшем, как на более универсальный. Соответственно, торренты для них идут с 2 ретрекерами, тем что был, и retracker.local, просто резолвятся они на один и тот же сервер, что ни на что не влияет. НЕ РАБОТАЮТ, ИСПОЛЬЗУЙТЕ retracker.local

3. Новых ретрекеров в явном виде мы больше не прописываем, однако можем сделать исключение в тех случаях, когда провайдер найдет вескую аргументацию для этого (в чем есть сильные сомнения).
Все заявки по ретрекерам - юзеру retracker, в личку. И опять же, ретрекеров для провайдером с количеством пользователей менее 20 000 не прописываем, это лишняя нагрузка на нас, с нулевой, практически, отдачей для пользователей !
Не делаем исключений, используйте retracker.local

Имейте ввиду, что retracker.local - это куда более универсальный путь, чем прописывание вашего персонального адреса.
Дело в том, что он рано или поздно поменяется, и у юзеров "на руках" останутся миллионы торрентов с несуществующим адресом ретрекера.
А это ни нам, ни вам, ни им не нужно. А ретрекер.локал может поднять любой провайдер, и это будет работать.

P.S. Если у вас пиринг, однако два провайдера не могут/не хотят договорится об трансфере зон - делайте каждый свой retracker.local с обменом таблиц пирами между собой. Готовых решений нет, но это совсем несложно.

P.P.S.

Цитата:

Цитата:

По-моему, здесь решили, что всем пофигу на мнение демонов avahi/zeroconf...
http://ru.wikipedia.org/wiki/Avahi
Ну очень интересно посмотреть на провайдера, который использует в своих сетях mDNS.
А если у вас офис или локалка из 2 - 2000 машин - вам ретрекер не нужен. Вообще.


P.P.P.S Похоже, что retracker.local стали внедрять и на других трекерах. Таким образом, это универсальный инструмент для ретрекинга. </spoiler>

Настройка ретрекера

Настройка через код ретрекера rutracker.org

Это PHP-скрипт, который можно взять здесь http://rutracker.org/retracker.zip. Настройка его проста, но есть одна особенность. По стандарту[1] адрес ретрекера оканчивается на /announce, поэтому для Apache нужно прописать некоторые правила в .htaccess:

Redirect

 RedirectPermanent /announce /announce.php

Rewrite

Этот вариант лучше предыдущего, потому что он делает внутренний редирект, то есть не идет внешнего перенаправления клиента (301)

 RewriteEngine On
 RewriteBase /
 RewriteRule ^announce/?$ /announce.php [L]

Multiviews

Также можно включить опцию apache:

Options +Multiviews

Без правки .htaccess

Создаем директорию announce, в которую кладем announce.php и config.php из архива, и затем переименовываем announce.php в index.php


Rewrite для Nginx

location ~* ^/announce$ {
    rewrite ^/ /announce.php permanent;
    error_log /dev/null;
    access_log off;
}

Примечания

Чтобы некоторые info_hash'ы обрабатывались правильно, необходимо установить в php.ini:

  magic_quotes_gpc = off

Также это можно сделать в Apache через директиву php_flag:

  php_flag magic_quotes_gpc off

Её можно добавлять или в .htaccess, или в настройки VirualHost в конфиге Apache.

Настройка через xbt

Можно использовать специализированный трекер, который не требует web сервера. Скачать его можно здесь: http://sourceforge.net/projects/xbtt/. Сразу после его установки он готов к работе ретрекером.

Настройка через xbt + Nginx

Получился конфиг примерно такой, в xbtt необходимо выключить gzip:

server {
       listen   10.10.10.10:80;
       server_name  retracker.local;
       server_name_in_redirect off;
       # Обязательно нужно будет настроить ротацию логов
       # Если логи не нужны, можно выставить access_log off;
       access_log  /var/log/nginx/retracker.local.access.log;
       gzip on;
       
       location  = / {
           rewrite ^/ /announce permanent;
       }
       
       # Редирект на внутренний ИП более эффективен, нежели
       # использование proxy_pass
       location ~ ^/(an|announce) {
           rewrite ^/ http://10.10.10.10:2710/announce permanent;
       }
       
       location ~ ^/(st|statistics) {
           rewrite ^/ http://10.10.10.10:2710/st permanent;
       }
       
       # Для оповещения об отсутствии scrape-url вполне подойдёт
       # стандартная страница nginx-а
       location ~ ^/scrape {
           return 404;
       }
}

Опции xbtt:

log_access    0
log_announce   0
debug   0
gzip_debug   0
gzip_scrape   0
announce_interval   600

Настройка opentracker + Nginx

Если в nginx использовать proxy-pass на внутренний адрес, то по логам nginx можно собрать некоторую статистику использования ретрекера.

Но тогда opentracker лучше собрать с опцией -DWANT_IP_FROM_QUERY_STRING - он будет использовать IP из запроса.

При этом В nginx'е же можно подставить нужный нам IP-адрес.

Вот такой вот конфиг nginx'а получился с opentracker

server {
           listen  80;
           access_log  /var/log/nginx/retracker.access.log;
           # мойдомен - домен, в котором находится хост
           # Если выдавать IP-адреса по DHCP, то это значение опции option domain-name
           # Если не существует адреса retracker.local, то хост ищет retracker.local.<мойдомен>
           server_name retracker.local retracker.local.<мойдомен>.ru tracker.local tracker.local.<мойдомен>.ru;
           location / {
                      Если в запросе присутствует ip=, убираем его
                      if ($args ~* ^(.*)&ip=[^&]+(.*)$) {
                          set $args $1$2;
                      }
                      #В качестве IP  ставим адрес, с которого пришел запрос
                      set $arg_ip $remote_addr;

                      #Перенаправляем /announce.php на announce
                      rewrite ^/announce\.php$ /announce/?$args&ip=$arg_ip? break;
                      #scrape.php - на scrape
                      rewrite ^/scrape\.php$ /scrape/?$args? break;
                      # / (retracker.local, без announce - на anounce/)
                      rewrite ^/$ /announce/?$args&ip=$arg_ip? break;
                       
                       #адрес opentracker'а
                       proxy_pass         http://127.0.0.1:6969/; 
                       proxy_set_header   Host             $host;
                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                       proxy_set_header X-Real-IP $remote_addr;
       }
   }

В opentracker при этом всего 1 опция:

listen.tcp_udp 127.0.0.1:6969


Ошибка цитирования Ошибочный тег <references>; можно использовать только параметр group.

Используйте <references /> или <references group="…" />
{{#invoke: Check for unknown parameters | check

| unknown = | preview = Страница использует Шаблон:Примечания с неизвестным параметром «_VALUE_» | ignoreblank = y | 1 | colwidth | group | liststyle | refs }}



Вопросы по ретрекеру можно задать здесь.


Вернуться на главную.
  1. На самом деле оно не так По спецификации адрес аннонсера может быть любой. Вид /announce или /announce.php равнозначен и нужен только как признак, что трекер поддерживает scrape: Спецификация