Перейти к содержимому
VPN service architecture diagram: a mesh network across servers at different providers, a control panel, and clients

Частный VPN-сервис на self-healing mesh-сети

2 минуты чтения

Спроектировал и сопровождаю коммерческий частный VPN-сервис: мульти-серверная сеть у нескольких хостинг-провайдеров в разных странах, self-healing mesh-магистраль, панель управления, написанная с нуля, и автоматическая выдача клиентских конфигураций.

Задача

Заказчику нужен был частный VPN-сервис для закрытого круга пользователей. Он предоставил серверы и клиентов — вся техническая работа, от архитектуры до поддержки пользователей, на мне. Главное требование — надёжность: серверы арендуются у разных хостеров, любой может уйти в даунтайм, а пользователи не должны этого замечать.

Моя роль

Это коммерческий заказ; работаю над ним с 2025 года соло — архитектура, разработка, эксплуатация и поддержка пользователей.

Что я сделал

  • Mesh-магистраль с самовосстановлением — сеть начиналась как классическая связка шифрованных туннелей со статическими маршрутами; в 2026 году перевёл магистраль на mesh-оверлей. Узлы постоянно измеряют задержку друг до друга, маршруты строит distance-vector-протокол по фактической метрике: при падении линка или целого сервера трафик за секунды переходит на следующий по качеству маршрут — руками ничего делать не приходится. Магистраль построена на open-source mesh-движке, который я дорабатывал под задачи сети на Go: политика доступа deny-by-default, маршрутные теги для source-based routing, шифрованный кэш централизованной конфигурации, исправления стабильности.
  • Панель управления сетью — с нуля — веб-панель (Vue 3, Express, SQLite), в которой описана вся сеть: узлы, связи, группы, политики доступа. Конфигурация версионируется, каждое изменение — атомарный коммит с проверкой конфликтов; после коммита конфигурация валидируется и собирается в запечатанный бандл для раздачи узлам. Правки из соседней сессии панель показывает вживую (SSE), чтобы два администратора не затирали друг друга.
  • API для интеграций — отдельный API-слой с токенной авторизацией и учётом подписок (тарифы, сроки действия) — основа для автоматической выдачи клиентских конфигураций.
  • Массовый provisioning — автоматизация генерации клиентских конфигураций и QR-кодов волнами — десятки конфигураций за раз вместо ручной сборки каждой.
  • Инфраструктура и эксплуатация — VPS у нескольких провайдеров, виртуализация Proxmox, контейнеры Docker, маршрутизация на сетевом оборудовании, мониторинг, резервные копии.

Результаты

  • Сервис в продакшене с 2025 года и работает непрерывно; пользователи — десятки человек.
  • Падение отдельного сервера или канала пользователи не замечают — сеть перестраивает маршруты сама.
  • Вся конфигурация сети управляется из одной панели: версии, валидация и раздача — автоматические.

Стек

Go · Node.js · TypeScript · Vue.js · Express · SQLite · Docker · Proxmox · Linux

Поделиться этой публикацией