§ ПОЛНАЯ МЕТОДИКА
Короткий ответ — каждые несколько часов мы поднимаем VPN-туннель через подписку каждого сервиса и проверяем доступность сетей российских операторов и популярных сайтов. Длинный ответ — ниже.
§ 01 — стек
Активный узел замеров — VPS в РФ, Ubuntu 22.04. На нём крутится xray-core в режиме клиента: для каждого VPN-сервиса из рейтинга мы держим действующую подписку и поднимаем туннель через его сервер.
Бэкенд — FastAPI на Python 3.12, orchestrator замеров — отдельный сервис, который раз в несколько часов обходит подписки и пишет результаты в SQLite. Frontend — статика, раздаётся через nginx + Cloudflare.
Узлы внутри РФ — в плане. Это даст возможность мерить из реальной сети МТС, МегаФона, Билайна и Tele2 по тем же маршрутам, что у конечного пользователя.
§ 02 — проверки
Операторы РФ
Через туннель шлём HTTPS-запросы к характерным эндпоинтам сетей МТС, МегаФон, Билайн, Tele2 и домашнего интернета. Проверка считается успешной, если ответ — 200/3xx без срыва handshake.
Сервисы
YouTube, Instagram, Telegram-звонки, WhatsApp. Для каждого — свой набор endpoint-проверок, который отражает реальную нагрузку: CDN-видео для YouTube, scontent-домены для Instagram, signaling для Telegram-звонков.
Госсайты и СБП
Госуслуги (gosuslugi.ru) и инфраструктура СБП — отдельная колонка. Многие зарубежные VPN их ломают: запросы из иностранного IP попадают под антифрод и возвращают 403/captcha.
Доступность узлов
Параллельно — TCP-проверка серверов VPN. Если сервер недоступен, это видно сразу, до того как клиент попробует подключиться.
§ 03 — score
Score — число от 0 до 100. Это взвешенная сумма доли успешных проверок по трём группам (операторы, сервисы, госсайты), скорректированная на стабильность за последние семь дней.
Доля успешных проверок за сутки даёт «мгновенный» score. История за неделю либо подтверждает его, либо штрафует за флаппинг (когда сервис то работает, то нет). Стабильный середняк часто получает score выше, чем нестабильный лидер.
Verdict — ok / warn / err — это огрублённый score: ≥ 75 = ok, 40–75 = warn, < 40 = err.
§ 04 — три состояния
В ячейках на главной — три состояния, не два. — мы проверили, работает. — мы проверили, не работает. — мы не проверяли.
Это важно, потому что отсутствие данных — это не то же самое, что «сервис сломан». Красный мы ставим только если зафиксировали реальный фейл. Серый — честная неопределённость.
Многие чужие рейтинги показывают только два состояния — это удобнее, но нечестно. Под красным у них может прятаться «просто не стали тестировать».
§ 05 — что мы не делаем
§ 06 — FAQ