Я подумываю установить торрент-трекер на том же выделенном сервере, на котором будет располагаться торрент-сайт. Я хочу сделать это, потому что мой веб-сайт и трекер будут взаимодействовать друг с другом, и я хочу, чтобы эти взаимодействия были плавными, и не хочу путаться с репликацией.
Я буду использовать Cloudflare или другой CDN, чтобы предотвратить DDOS-атаки на мой сайт. Но я также хочу защитить свой HTTP-торрент-трекер (XBT-трекер), работающий на другом порту. Так что я также хочу, чтобы торренты проходили через CDN, как через прокси, но без кеширования и капчи, потому что торрент-программы не могут решить капчу. Можно ли проксировать http-торрент-трекер через CDN, например cloudflare, или мне нужно заказать дополнительный DDOS-сервер только для торрент-трекера?
Я опоздал почти на 5 лет, но это больше для людей, которые ищут в Google. У меня действительно есть трекер за Cloudflare, потому что он помогает с маршрутизацией трафика для пользователей с IPv6. Это помогает убедиться, что они направлены на использование IPv4 для трекера. И это позволяет большему количеству людей использовать трекер. Если бы я хотел, я мог бы также добавить защиту от DDOS, но я использую правила страницы для обхода кеширования и многие другие опции.
Правила вашей страницы должны выглядеть так:
http://tracker.example.com:8080/*
Cache Level: Bypass
и
http://tracker.example.com:2052/*
Cache Level: Bypass
Сначала вам нужно найти поддерживаемые Cloudflares порты, используйте тот, который вам подходит. Вот список:
По умолчанию Cloudflare проксирует трафик, предназначенный для портов HTTP / HTTPS, перечисленных ниже.
HTTP-порты, поддерживаемые Cloudflare:
80
8080
8880
2052
2082
2086
2095
Порты HTTPS, поддерживаемые Cloudflare:
443
2053
2083
2087
2096
8443
Затем вам нужно поставить Nginx перед торрент-трекером. Например, если вы используете Xbt Tracker, вам нужно использовать перезапись Nginx следующим образом, в "default.conf" или в другом месте, которое вы хотите назвать .conf в папке conf.d:
server {
listen 8080;
server_name localhost;
location / {
rewrite ^(.*)$ $1?ip=$remote_addr break;
proxy_pass http://127.0.0.1:2052/;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
access_log off;
log_not_found off;
}
}
Обычно вы запускаете свой трекер, например, через порт 2052, а затем запускаете Nginx через прокси-сервер через порт 8080. Затем вы вставляете порт 8080 в свои торренты.
Я думаю, что все, вы можете посмотреть, как добавить в Nginx дополнительные параметры, такие как количество рабочих и время работы.
Если вы не поставите Nginx перед своим трекером, трекер получит все IP-адреса Cloudflare и не сможет правильно общаться и отслеживать.
Также создайте еще один файл в папке Nginx conf.d с именем cloudflare.conf и поместите внутрь следующее, это позволит вам получить реальные IP-адреса:
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;
Наслаждаться. И следите за своей базой данных на предмет правильных IP-адресов, чтобы убедиться, что она работает нормально.
Я не думаю, что ты выиграешь что-нибудь с помощью CloudFlare или любого другого CDN для Torrent Tracker.
Весь смысл CDN в том, чтобы переложить на него работу, кеширование ответы на запросы.
С торрент-трекером каждый запрос уникален для каждого клиента.
Таким образом, они не могут быть кэшированы (или не имеет значения, где они), что делает CDN практически бесполезным для этого конкретного типа рабочей нагрузки.
Взять хотя бы TL. Это огромный частный торрент-трекер. Его веб-сайт находится на CloudFlare, но его трекер находится на сервере в Люксембурге. Кажется, что никакой CDN не задействован. За этим IP-адресом может быть кластер, который сможет обрабатывать все запросы, но я предполагаю, что это не CDN.
Каждый запрос, сделанный клиентом, будет уникальным каждый раз, когда он его сделает.
Примером этого сообщения GET может быть:
http://some.tracker.com:999/announce ?info_hash=12345678901234567890 &peer_id=ABCDEFGHIJKLMNOPQRST &ip=255.255.255.255 &port=6881 &downloaded=1234 &left=98765 &event=stopped
https://wiki.theory.org/BitTorrent_Tracker_Protocol
Подробнее: http://www.bittorrent.org/beps/bep_0003.html
Даже если все параметры одинаковы для всех клиентов (что не так - peerid уникален для каждого клиента, для каждого торрента в соответствии с BEP0003), у вас все равно будет уникальный материал. за запрос на клиента. Например:
&downloaded=1234
&left=98765
Вышеуказанные параметры меняются при каждом последующем запросе торрент-клиента в зависимости от того, сколько трафика он прошел с момента последнего запроса.
CDN обычно кэшируют контент на основе URI запроса. Таким образом, если запрос каждый раз уникален, он не сможет обслуживать кэшированный контент, что противоречит их цели.
Теперь, когда я думаю об этом, если ваш трекер анонимен, вы мог бы, может бытьиспользуйте очень индивидуальную конфигурацию Varnish, чтобы иметь возможность кэшировать ответы для каждого info_hash, игнорируя уникальность запросов. Но в этом случае ваш трекер не сможет измерить реальную статистику (общее количество запросов вверх / вниз / количество сверстников и т. Д.), Поскольку только небольшой процент запросов достигает трекера.
И таким образом вы не будете действительно защищены от любых DDoS-атак (хотя Varnish - отличная программа, способная обрабатывать огромное количество запросов!)
Обновить:
Есть несколько провайдеров, у которых есть оборудование для защиты от DDoS-атак (например, Arbor Peakflow). Они могут позволить вам запускать свой трекер без CDN или кеширования и иметь возможность блокировать атаки DDoS на ваш сервер. Но, конечно, такие решения имеют свою стоимость :)