Как работает вся система
В предыдущих статьях мы разобрали, что будем создавать и что понадобится для старта.
Теперь посмотрим, как все компоненты VPN-сервиса связаны между собой.
Самое важное правило:
Управление сервисом и VPN-трафик - это разные процессы.
RemnaWave управляет пользователями, подписками и нодами, но интернет-трафик клиента проходит через VPN-ноду.
Если понять это разделение сейчас, дальше RemnaWave, боты, CDN и подписки будут восприниматься намного проще.
Два слоя VPN-сервиса
Удобнее всего разделить весь проект на два слоя.
Управление
Здесь находятся:
- RemnaWave
- пользователи
- подписки
- настройки нод
- доступы
- Telegram-бот
Этот слой решает, кто может подключаться и какие серверы ему доступны.
VPN-трафик
Здесь находятся:
- VPN-приложение
- VPN-нода
- дополнительные точки входа
- CDN, если он используется
- интернет
Этот слой уже отвечает за само соединение пользователя.
Получается:
УПРАВЛЕНИЕ
Telegram-бот
↓
RemnaWave
↓
Пользователь и его подписка
А отдельно:
VPN-ТРАФИК
VPN-приложение
↓
VPN-нода
↓
Интернет
Это две связанные, но разные цепочки.
Что делает RemnaWave
RemnaWave - центр управления сервисом.
Она хранит информацию о том:
- какие пользователи существуют
- кому разрешён доступ
- какие подписки активны
- какие ноды подключены
- какие варианты подключения доступны пользователю
- когда заканчивается доступ
- какие ограничения назначены пользователю
При этом сама панель не должна становиться точкой, через которую проходит весь клиентский интернет.
Её задача - управлять, а не передавать пользовательский трафик.
Простая схема:
RemnaWave
↓
Управляет доступом
↓
VPN-ноды
Что делает VPN-нода
VPN-нода - сервер, который принимает VPN-подключение пользователя.
Именно здесь работает серверная часть VPN-протокола.
Когда пользователь подключается, основной путь выглядит так:
VPN-приложение
↓
VPN-нода
↓
Интернет
Например, если пользователь подключился к ноде в Германии, сайты будут видеть внешний IP этой ноды, а не домашний IP пользователя.
При этом RemnaWave не находится внутри этого потока.
Она заранее сообщила ноде, как работать, а пользователю выдала необходимые данные для подключения.
Как RemnaWave управляет нодой
Нода и панель должны быть связаны между собой.
На сервере ноды работает агент, который подключается к RemnaWave и получает конфигурацию.
Упрощённо процесс выглядит так:
RemnaWave
↓
Конфигурация
↓
Агент ноды
↓
Xray
Панель сообщает ноде:
- какие подключения принимать
- какие настройки использовать
- какие пользователи имеют доступ
- какие конфигурации должны работать
После получения настроек нода уже самостоятельно принимает пользовательские подключения.
Панель не подключается к ноде вместо пользователя. Она управляет её конфигурацией.
Что такое подписка
Подписка - это персональная ссылка пользователя, через которую VPN-приложение получает доступные ему серверы и настройки.
Это важное отличие.
Подписка - не обязательно один конкретный VPN-сервер.
В ней может быть несколько вариантов подключения.
Схема:
Пользователь
↓
Получает ссылку подписки
↓
Добавляет её в VPN-приложение
↓
Приложение загружает доступные серверы
Если владелец сервиса позже изменит доступные серверы, пользователю обычно достаточно обновить подписку в приложении.
Не нужно каждый раз вручную отправлять ему новый конфиг.
Как появляется сервер в подписке
В RemnaWave есть несколько связанных сущностей.
На старте тебе достаточно понимать четыре основные.
Config Profile
Config Profile содержит серверную конфигурацию для ноды.
Внутри него находятся настройки подключений и необходимые параметры Xray.
У одной ноды используется выбранный профиль конфигурации.
Inbound
Inbound определяет, как нода принимает подключение.
Например, он содержит:
- протокол
- порт
- транспорт
- параметры подключения
Проще:
Inbound
=
точка входа на VPN-ноде
Host
Host описывает то, что получит клиент.
В нём могут находиться:
- название сервера
- адрес подключения
- порт
- связанный inbound
- дополнительные клиентские параметры
То есть:
Inbound
↓
Как принимает сервер
Host
↓
Как к нему подключается клиент
Это не одно и то же.
Squad
Squad определяет доступ пользователя к нужным подключениям.
Упрощённо его можно воспринимать как группу доступа.
Например:
Тариф Basic
↓
Squad Basic
↓
Доступ к определённым подключениям
Один пользователь может получать только те варианты подключения, которые разрешены его группой доступа.
Как собирается доступ пользователя
Теперь связываем всё вместе.
Упрощённая цепочка внутри RemnaWave:
Config Profile
↓
Inbound
↓
Host
↓
Squad
↓
Пользователь
↓
Подписка
Здесь:
- Config Profile описывает конфигурацию ноды
- Inbound создаёт точку входа
- Host превращает её в вариант подключения для клиента
- Squad определяет, кому этот вариант разрешён
- Пользователь получает подходящие ему серверы через подписку
Если какой-то элемент этой цепочки настроен неправильно, нужный сервер может не появиться в подписке пользователя.
Подробно каждый элемент будем настраивать уже в разделе RemnaWave.
Сейчас достаточно понимать саму связь.
Что происходит при создании пользователя
Представим, что появился новый клиент.
Шаг 1. Создаётся пользователь
В RemnaWave появляется его запись.
Для него задаются доступ и необходимые ограничения.
Шаг 2. Пользователю назначается доступ
RemnaWave определяет, какие подключения этот пользователь должен получить.
Шаг 3. Создаётся подписка
Пользователь получает персональную ссылку.
Например:
https://sub.example.com/персональный-код
Это только пример. Настоящий адрес будет зависеть от твоей настройки.
Шаг 4. Подписка добавляется в приложение
Пользователь вставляет ссылку в совместимое VPN-приложение.
Приложение обращается к подписке и получает доступные варианты подключения.
Шаг 5. Пользователь выбирает сервер
После выбора приложение подключается уже не к панели, а к указанной VPN-инфраструктуре.
VPN-приложение
↓
VPN-нода
↓
Интернет
Именно здесь начинается реальный VPN-трафик.
Где находится Telegram-бот
Telegram-бот находится до VPN-подключения.
Он нужен для взаимодействия с пользователем.
Например:
Пользователь
↓
Telegram-бот
↓
Покупка или получение доступа
↓
RemnaWave
↓
Создание или изменение пользователя
↓
Подписка
После получения подписки роль бота в самом VPN-соединении заканчивается.
Пользователь добавляет подписку в приложение, после чего приложение подключается к инфраструктуре напрямую.
Получается:
Telegram-бот
↓
Выдаёт доступ
VPN-приложение
↓
Передаёт VPN-трафик
Не путай эти две задачи.
Где находится CDN
Без CDN пользователь может подключаться напрямую к VPN-ноде:
VPN-приложение
↓
VPN-нода
↓
Интернет
В подходящей конфигурации между приложением и серверной частью может появиться CDN:
VPN-приложение
↓
CDN
↓
VPN-инфраструктура
↓
Интернет
При этом пользователь всё равно получает настройки через свою подписку.
Меняется маршрут подключения, а не сама идея подписки.
CDN - дополнительный компонент. Он не заменяет RemnaWave, пользователя, подписку или VPN-ноду.
Подробные схемы будем собирать отдельно в разделе CDN.
Зачем нужен домен
Домен связывает многие компоненты проекта понятными адресами.
Например:
panel.example.com
sub.example.com
node.example.com
Один поддомен может использоваться для панели, другой для подписок, третий для отдельных схем подключения.
DNS сообщает, куда должен вести каждый такой адрес.
Упрощённо:
Домен
↓
DNS
↓
Нужный сервер или сервис
Конкретные DNS-записи будем создавать только тогда, когда они понадобятся в соответствующем гайде.
Что произойдёт, если панель временно отключится
Панель и ноды выполняют разные задачи.
Пользовательский трафик идёт через ноду, поэтому уже установленное соединение не превращает RemnaWave в промежуточный VPN-сервер.
Но панель нужна для управления сервисом и выдачи актуальных подписок.
Поэтому панель всё равно является важной частью инфраструктуры и позже будет защищена, настроена на резервное копирование и мониторинг.
Что произойдёт, если отключится нода
Здесь ситуация другая.
Именно нода принимает VPN-соединение.
Если пользователь пытается подключиться к недоступной ноде, этот вариант подключения работать не будет.
По мере развития проекта можно добавлять:
- дополнительные ноды
- разные локации
- резервные подключения
- дополнительные точки входа
Но на первом запуске наша задача проще - добиться стабильной работы одной ноды.
Весь путь пользователя целиком
Теперь можно собрать весь процесс от начала до конца.
Получение доступа
Пользователь
↓
Telegram-бот
↓
RemnaWave
↓
Создание доступа
↓
Подписка
Загрузка серверов
VPN-приложение
↓
Ссылка подписки
↓
Список доступных подключений
VPN-соединение
VPN-приложение
↓
VPN-нода или дополнительная схема подключения
↓
Интернет
А сама RemnaWave параллельно управляет пользователями, доступами и нодами.
Главное, что нужно запомнить
Не нужно запоминать все названия сущностей RemnaWave прямо сейчас.
Запомни пять вещей:
- RemnaWave управляет сервисом.
- VPN-нода передаёт пользовательский трафик.
- Подписка сообщает приложению, какие подключения доступны пользователю.
- Telegram-бот помогает получить и управлять доступом, но не передаёт VPN-трафик.
- CDN используется только в тех схемах, где он нужен как дополнительный маршрут подключения.
Если эта логика понятна, дальше отдельные технические гайды будут собираться как конструктор, а не выглядеть набором случайных настроек.
Что дальше
Теперь ты понимаешь, как компоненты VPN-сервиса связаны между собой и какой путь проходит пользователь от получения доступа до подключения.
Следующий шаг - разобраться с терминами, которые будут постоянно встречаться дальше.
Переходи к статье «Словарь VPN-терминов».