Личный VPN это круто, согласны?
Условные $5 в месяц и можно раздать доступ всем друзям и родным. Сервер работает исключительно на вас: высокая скорость, низкая задержка, полная приватность.
Оплачиваете VPS, открываете гайды на Xray, Reality, VLESS, XHTTP, 3x-ui, Nginx, Let's Encrypt для HTTPS, SNI, Luxray, Docker — подходите к вопросу максимально серьёзно, создаёте удобные QR-ключи для близких. Ваш VPN онлайн и вы прекрасны! Это заняло у вас всего 40 минут и дало полезный опыт.
Иии... через неделю VPN перестает работать. В чатике Вастрик.VPN вам поясняют, что SNI был настроен подозрительно — "Когда это Apple начал хоститься в Казани?", ещё выясняется, что вы забыли закрыть стандартный порт от панели 3x-ui. Консолидация таких факторов дала РКН повод забанить IP вашего сервера и теперь ваше окружение опять без надёжного интернета.
А дальше опять поднимать сервер с нуля, ещё и оказалось, что за эту неделю ваши знания успели устареть и надо делать по-другому.
Так появилась боль, которую я закрыл, создав Meridian.
Что это конкретно?
Meridian это CLI инструмент с намеренно простой главной командой $ meridian deploy, которая разворачивает VPN путем выполнения ряда команд с проверкой всех зависимостей. Он отвечает за полную настройку от А до Я — вы не увидите ошибок, что у вас что-то не установлено или не настроено: Meridian пойдёт сам установит и настроит! Пусть компьютеры делают муторную работу за вас, верно?
А, это всё бесплатно и open-source. Примерно так это выглядит в работе:

В конце вы получаете удобную для шеринга ссылку на страницу подключения.
Демо-страницу подключения можно посмотреть по ссылке https://getmeridian.org/demo/ или ниже на скриншоте:

Что под капотом?
Meridian не является каким-то новым протоколом VPN, и активно старается им не быть. Он поднимает панель 3x-ui без торчащих портов и логина-пароля admin:admin. Мне панель визуально кажется перегруженной, но как система менеджмента она неплохая.
Базовый протокол — VLESS+Reality, дополнительно включается XHTTP (повышенная скрытность) и WSS через Cloudflare (CDN-фолбэк на случай блокировки IP). Не так важно чем они различаются, важно то, что они достаточно разнообразны, чтоб выживать при разных типах детекции и блокировок.
А как же белые списки?
Тут самое интересное — Меридиан из коробки поддерживает настройку т.н. relay серверов, ну или как в чате говорят "мультихоп". Этот сетап подразумевает уже два сервера: один в белом списке (облако Яндекса, например) как relay, второй в Европе как exit-нода.
Клиент → Relay (внутренний IP) → Exit-сервер (за границей) → Интернет
Ваш европейский сервер хостит VPN и вы можете подключаться к нему напрямую. В случае белого списка, вы можете докупить сервер в РФ и командой $ meridian relay deploy RELAY_IP --exit EXIT_IP связать эти два сервера, Меридиан заставит их договориться между собой. It just works.
При этом, relay является простым L4 TCP-форвардингом (Realm) — он не расшифровывает трафик и ваш хостинг в РФ не выдаст никаких данных даже при компрометации.
Очевидно, это всё подразумевает доступ российского сервера к глобальному интернету, если его не будет, то уже ничё и не поделать.
Долгосрочное видение
Меридиан это:
- лучшие протоколы, а не все подряд
- юзерам не нужно постоянно изучать современные технологии
- устаревшие и слабые протоколы намеренно исключены, чтоб не увеличивать когнитивную нагрузку
- грамотная настройка сервера, вплоть до мельчайших деталей
- закрывает порты, поскольку они видны РКН и могут служить фактором бана
- nginx корректно обрабатывает любой SNI, нет дифференциала для детекции
- TLS-сертификат выписывается автоматически, в том числе на голый IP-адрес — домен покупать не обязательно
- всё идемпотентно: если деплой прервался на середине, просто запустите
$ meridian deployещё раз — он продолжит с того места, где остановился
- райский UX, поскольку даже бабушка должна уметь быть на связи
- много усилий потратил, чтоб страница подключения была удобна и красива
- можно поставить свою иконку (эмодзи или картинку) и выбрать цветовую тему из шести палитр — чтоб страница подключения была с душой
Bash -> Ansible -> Python
Первая версия Меридиана была просто Bash скриптом. Технология столетней давности быстро пала жертвой моих амбиций — количество строк нечитаемых иероглифов начало в какой-то момент превышать 2 тысячи.
Я смело принял решение переписать всё с нуля! Что используется для менеджмента серверов девопсами? Ansible, ну конечно! Что ж я сразу на нем не сделал. Но как видно из заголовка, Ansible тоже пал жертвой моего желания делать красиво. Для него нужно устанавливать Python и аккуратно запускать неудобные yaml конфиги.
И почему тогда уже просто сам Python не использовать? Так я и остановился на текущей v3. Весь Меридиан это чистый Python с парой библиотек для красивого вывода.
Ключевая техническая фишка здесь это возможность запускаться и с личного ноутбука (тогда делается ssh на сервер), либо на самом сервере. Первая опция даёт возможность иметь центральный менеджмент нескольких серверов.
ИИ-приколюхи
Сделал удобную команду $ meridian doctor, чтоб можно было вывести статус всех подсистем. Но мы же в эпохе ИИ, верно? Добавляйте флаг --ai и команда обернет вывод в детальный промпт для вашего ChatGPT, Claude или что там у вас, чтоб он вам помог задебажить проблему!
Помогайте своим юзерам самостоятельно разобраться в проблеме, желающие могут приступить к действиям, а не засорять GitHub Issues.
На этом же волне добавил репозиторий в базу знаний context7 — ваш Claude Code может теперь задавать вопросы всей моей документации.
Текущий статус
Меридиан работает сейчас примерно у десяти человек, фидбек позитивный!

Проблемы всплывают и там и сям — желание сделать end-to-end инструмент, который работает однообразно на великом множестве разнообразных Linux серверов, дорогого стоит. Базовые сценарии, в целом, могу назвать отлаженными.
Какие планы на будущее?
Мечтаю, что если репозиторий взлетит на GitHub и получится заразить своим видением достаточное количество человек, то проект начнёт двигаться в сторону самоподдержки и саморазвития.
Планирую в скором времени распространять проект на Reddit и прочих площадках с заинтересованными людьми.
———
Увидимся в Вастрик.VPN! Буду рад обратной связи и помочь вам настроить ваш сервер, если вдруг Меридиан шалит.

Ну каеф, очень вовремя с белыми списками!
Только вот переживаю что и яндексовские хостинги скоро белыми списками накроет
Есть коллизия alias с https://github.com/rynfar/meridian