Большинство VPN-сервисов на рынке решают одну и ту же задачу одинаково: берут open-source протокол (чаще всего WireGuard), добавляют к нему готовый инструмент обфускации трафика — и на этом останавливаются. Схема рабочая, но у неё есть предел: сервис зависит от чужого протокола, чужой лицензии и чужого темпа обновлений. Когда провайдеры или DPI-оборудование меняют тактику, приходится ждать, пока обновится сторонний проект, либо накладывать очередной патч поверх чужого кода.

Meridian с самого начала строился на связке готовых компонентов — тот же WireGuard в панели управления, отдельный инструмент для обхода списков блокировок отдельно от механизма собственно маршрутизации. За несколько месяцев разработки эта связка была поэтапно заменена собственным гибридным протоколом и отдельным движком маршрутизации, который решает, куда именно идёт каждый пакет.

Почему просто патчить форки — тупиковый путь

Идти по пути форка — значит наследовать не только код, но и его ограничения: лицензию, архитектурные решения, которые были верны для чужой задачи, и скорость, с которой автор форка реагирует на новые блокировки. При достаточно сложных сценариях (устойчивые блокировки уровня протокола, а не просто список доменов) патчить чужой код становится сложнее, чем написать нужный модуль с нуля под конкретную задачу.

Поэтому механизм обхода сложных блокировок (нейросетевой DPI, блокировки уровня протокола) в Meridian реализован собственным движком, а не как надстройка над сторонним решением. Простые случаи — блокировка по конкретным IP или доменам без глубокого анализа трафика — по-прежнему может закрывать более лёгкий сторонний инструмент, если он уже стоит на роутере: конфликтов между ними не заложено намеренно, подробнее об уровнях обхода блокировок в целом — в отдельном разборе, что вообще значит "обходить блокировки" на разных уровнях.

Одна кнопка вместо набора настроек

Второе следствие перехода на собственный протокол — упрощение логики для пользователя. Раньше нужно было вручную выбирать локацию сервера, режим работы, при необходимости — протокол. Сейчас это делает сама программа: при появлении блокировок канал автоматически переключается в режим обхода, при их снятии или ослаблении — так же автоматически возвращается на прямой путь, без разрыва соединения. Это тот же принцип, который делает автоматическое переключение между whitelist- и обычным режимом практичным решением, а не источником путаницы — сравнение подходов есть в материале о работе VPN под жёсткими whitelist-ограничениями.

Отдельно был переписан модуль маршрутизации, ранее опиравшийся на сторонний компонент (magitrikle): при блокировках весь трафик уходит через основной протокол Meridian, а список доменов из "чёрного" списка на обход превращается в список исключений — то есть работает как зеркальное отражение той же логики. Это тот же принцип, что описан в материале про раздельную маршрутизацию трафика для разных сервисов, только реализованный на собственном движке вместо стороннего.

Что это значит на практике

Для пользователя переход на собственный протокол незаметен там, где всё работает штатно, и заметен там, где раньше приходилось ждать обновления форка или разбираться с конфликтом между несколькими установленными инструментами. Независимость от чужой лицензии также означает, что развитие протокола не остановится, если сторонний проект-донор кода решит свернуть разработку или сменить условия использования.