Я думаю об установке средства отслеживания потока на том же выделенном сервере, где связанный с потоком веб-сайт будет расположен. Я хочу сделать это, потому что мой веб-сайт и средство отслеживания будут взаимодействовать друг с другом, и я хочу, чтобы эти взаимодействия были гладкими, и не хочу смешивать с репликацией.
Я буду использовать cloudflare или другой CDN для предотвращения DDos-атак на моем веб-сайте. Но я также хочу защитить свое http средство отслеживания потока (средство отслеживания XBT) работа другого порта. Таким образом, я также хочу, чтобы потоки прошли CDN как через прокси, но не кэшируясь и капча, потому что программное обеспечение потока не может решить капчу. Действительно ли возможно проксировать http средство отслеживания потока через CDN как cloudflare, или я должен заказать дополнительный сервер DDOSable только для средства отслеживания потока?
Я не думаю, что вы получите что-нибудь , используя CloudFlare или любой другой CDN для Torrent Трекер.
Весь смысл 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 & порт = 6881 & скачано = 1234 & left = 98765 & event = остановлено
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 на ваш сервер. Но, конечно, такие решения имеют свою стоимость :)
Я опоздал почти на 5 лет, но это больше для гугления. На самом деле у меня есть свой трекер за 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 и поместите внутрь следующее, это позволит вам получить реальный ips:
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-адресов, чтобы убедиться, что она работает правильно.