Меня зацепила одна штука. Тот VPN, который у меня нормально работал ещё зимой, к марту перестал коннектиться вообще. У знакомого работает. У него МегаФон, у меня МТС.
Это повторяется каждые пару недель: статус «работает или нет» зависит от оператора, от региона, от часа суток. У одного и того же сервиса. Я держу маленький Telegram-чат, где помогаю людям с настройкой ключей. Самый частый вопрос там уже почти год не «как настроить», а «какой реально берёт сейчас у моего оператора».
Полез смотреть готовые каталоги VPN на русском. Везде один и тот же паттерн: редакция год-полтора назад написала обзор, поставила 4.7/5, внизу partner-link с UTM. Обновление раз в полгода. На вопрос «что у людей работает на МТС в Краснодаре сегодня» обзор не отвечает.
Решил, что простого «список + голосование пользователей с разбивкой по оператору» нигде нет, и собрал: https://vpnstatus.online. Запустил совсем недавно, без регистрации, без рекламы, без партнерок.
Почему существующие каталоги не помогают
Прежде чем что-то делать, несколько недель искал готовое. Толкового русскоязычного сервиса с актуальной картиной по VPN в РФ просто не нашёл. Всё, что есть: либо рейтинговые сайты под партнёрки, либо Telegram-чаты, либо англоязычные форумы про западные провайдеры.
Четыре популярных русскоязычных сайта-рейтинга VPN, которые я смотрел, устроены одинаково:
1. Редакция (часто один человек) пишет обзор сервиса.
2. В конце ставит оценку 4.7 или 4.8.
3. Внизу affiliate-ссылка.
Это не плохо само по себе: обзор бывает полезен. Плохо то, что он отвечает на «какой VPN хороший в принципе», а не на «какой реально работает у меня сейчас». А контекст в РФ-сегменте за последние два года меняется быстрее, чем редакция успевает писать.
Альтернативы: Telegram-чаты и Reddit. Там живая инфа, но фрагментированная: вчерашнее сообщение тонет в двухстах новых, поиском за неделю агрегат не вытащить. И на Reddit-е /r/RussiaVPN активность скромная, обсуждения часто перемешаны с американо-британским контекстом.
Я хотел простого: сегодняшний срез голосов «работает / частично / не работает» у моего оператора, без редактуры и без премодерации. Не нашёл, пришлось делать самому.
Что собрал
Минимальный сервис, без излишеств:
1. Каталог: сейчас 16 VPN-сервисов и 19 клиентов.
2. Голосование одним кликом по каждому сервису с указанием оператора (МТС, МегаФон, Билайн, Tele2, Ростелеком, Дом.ру, МГТС). Голос: works, partial или broken. Можно поменять, нельзя накопить.
3. Отдельная агрегатная метрика «обход белых списков». Это другой режим блокировки, и список рабочих сервисов в нём заметно у́же.
4. Короткие отзывы с рейтингом 1-5.
5. Фильтры в каталоге: статус (работает/частично/сломан), рейтинг, цена, бесплатные, безлимит, обход белых списков, протоколы (VLESS, WireGuard, AmneziaWG, Hysteria2 и т.д.). Комбинируются: «бесплатные + AmneziaWG + обход БС», три тыка и видно ровно тот срез, который нужен.
6. Можно добавить свой VPN или клиент в каталог. Форма прямо на сайте, без регистрации: название, ссылка на сайт, протоколы, Telegram-канал/бот если есть. Дальше я бегло проверяю на адекватность (работает сайт, не дубль, не явный скам), и сервис появляется в общем каталоге. Это, по сути, и есть способ собрать тот самый недостающий русскоязычный каталог: сами пользователи добавляют то, что им нужно, сами голосуют — без редакции и без партнёрки.
Что специально не делал:
— Регистрации (отбивает большинство голосующих и не защищает от накрутки на 100% всё равно).
— Рекламы (на сайте нет ни одного баннера).
— Партнёрских ссылок.
— Редакционных оценок: только агрегаты по голосам.
Что хочу посмотреть со временем
Сервис только запустили, голосов и отзывов пока почти нет, делать какие-то выводы по такой выборке смысла мало. Интересно как раз посмотреть через пару месяцев: насколько сильно у одного и того же сервиса разнится статус между МТС, МегаФоном и Билайном; какие протоколы реально проходят в whitelist-режиме у мобильных операторов; меняется ли картина после очередной «волны» закручивания на ТСПУ. Это, собственно, основная причина, зачем такой каталог нужен — собрать живую статистику от пользователей, а не очередную «редакция поставила 4.7/5».
По мере накопления данных постараюсь делать короткие апдейты: что изменилось за месяц, у кого статус упал, у кого вырос. Если интересно — подписывайтесь на канал, ссылка в подвале сайта.
Технические грабли, без занудства
Стек: Next.js 16 (App Router, standalone), PostgreSQL 16, Drizzle ORM, Caddy reverse-proxy, Docker Compose, всё на одной VPS за €15/мес. Никакого Vercel, CDN, k8s. Нагрузка маленькая, переплачивать не за что.
Расскажу про несколько штук, на которых неожиданно потратил день каждой.
Антифрод без регистрации
Голосование без регистрации это приглашение на накрутку. Если верить любому POST-запросу, любой VPN за полчаса нагонит себе тысячу голосов works.
Что сделал:
— Cookie + клиентский fingerprint. Связка сохраняется на первом голосе и сверяется на следующих. Один клиент → одно голосование на сервис на оператора. Менять можно, накапливать нет.
— Хеш IP с pepper’ом. Сырой IP не храню. Per-IP rate-limit: несколько голосов в минуту.
— Подсветка аномалий в админке: всплеск голосов одного направления за короткое время подсвечивается, дальше разбираюсь руками.
— Веса голосов. Пользователь, который проголосовал по 5+ сервисам и оставил отзыв, весит в агрегате больше «прохожего».
Полностью защититься от накрутки нельзя: кто-то с пулом IPv6 и автоматизацией всё равно прорвётся. Но порог входа поднят достаточно, чтобы ручная накрутка одним человеком отлавливалась. Главный косвенный сигнал «нас атакуют» это расхождение между голосами и текстом отзывов: цифру поднять легко, а 200 символов осмысленного текста на каждый фейк-аккаунт уже заметно сложнее.
Логотипы через исходящий прокси
Логотипы я тяну автоматически. Цепочка: Telegram-канал/бот → favicon сайта → Google S2 как последний fallback. Звучит просто. Ровно до момента, когда оказывается, что сервер у меня в РФ-хостинге.
Из РФ-хостинга t.me и добрая часть VPN-сайтов недоступны. Resolver работает, TCP-handshake нет. То есть весь fetcher без исходящего прокси не получит ни одного аватара.
Лендинги под кластеры запросов и Search Console
SEO-стратегия отдельная история, и я не специалист в этом. Сразу оговорка: я не пытаюсь накрутить позиции трюками или скрытым текстом. Задача обратная: чтобы человек, гуглящий «какой VPN работает у МегаФона» или «обход белых списков 2026», находил конкретный ответ, а не очередную стенку из 4000 слов под партнёрку. Для этого структура страниц и метаданные должны соответствовать тому, что человек реально ищет. Это не накрутка, это чтобы ответ нашёлся через Google/Яндекс по конкретному техническому вопросу.
Главное, что сделал:
Лендинги под операторов: /providers/mts, /providers/megafon и т.д. На каждом топ VPN с положительными голосами именно от пользователей этого оператора. Контент динамический, ISR-кэш на 5 минут. Кластер «впн для МТС / МегаФон / Билайн» суммарно даёт ~50 тыс. показов в месяц по Wordstat, игнорировать нельзя.
Лендинги под use-case: /vpn-for/youtube, /vpn-for/telegram, /vpn-for/roblox. То же самое, но фильтр другой.
Лендинги под протоколы: /protocols/vless, /protocols/wireguard. Объясняет, что это, какие сервисы и клиенты поддерживают.
Structured data: на каждой странице JSON-LD с SoftwareApplication, aggregateRating и offers. Это даёт звёздочки в SERP, когда есть данные.
Чего не сделал и не буду
— Мобильного приложения нет и не планируется. Web и так работает; приложение для каталога с голосованием не оправдывает поверхность багов.
— API публичного нет. Если кому-то нужен read-only JSON со списком сервисов и агрегатами, напишите, прикручу.
— Истории голосов по дням не храню. Сейчас агрегаты пересчитываются, старые голоса забываются.
Что бы сделал иначе с самого начала
— Не использовать standalone-сборку Next.js. Сэкономил бы день на разборках с volume и логотипами. Образ был бы на 200 МБ толще, ну и фиг с ним. Если кто-то поднимает похожее с динамической раздачей файлов, подумайте дважды, нужен ли вам standalone.
— Закладывать историю голосов сразу. Сейчас приходится мигрировать.
— Отдельная таблица справочника протоколов, а не string-array. Сейчас один и тот же протокол может попасть как VLESS, vless, Vless, нормализую в коде, но это лишний слой.
Зачем всё это
Не для денег. Рекламы нет, аффилиатов нет, хостинг плачу из кармана. Ну и пока никто не предлагал «купите наш сервис, поднимем рейтинг», но это вопрос времени, и ответ заранее: рейтинг считается из голосов, ставить руками нельзя.
Если коротко: мне самому был нужен такой инструмент. Когда я ищу VPN для родителей или для тех, кто пишет в чат, я хочу нажать в фильтре «МТС моб., бесплатные, обход БС» и увидеть, что реально работает у людей со схожим профилем сегодня. Не «эксперт А поставил 4.7/5 полтора года назад».
Открыто, без регистрации, можно потыкать: https://vpnstatus.online. Если есть фидбэк, нашли баг или сервис, который стоит добавить, есть форма «Контакты» на сайте, или сюда в комменты. Сорсы пока закрытые, но если будет интерес к каким-то модулям отдельно (фетчер логотипов через прокси, например, или антифрод-схема для голосования), могу выложить как самостоятельные снипеты.
ссылка на оригинал статьи https://habr.com/ru/articles/1027932/