Skip to main content

Summing up Config&Profiles

· 4 min read
Remnawave
Maintainer

В этой статье мы проведем небольшой обзор новой системы – Профилей Конфигураций (Config Profiles) и Внутренних Сквадов (Internal Squads), которая будет доступна с релизом 2.0 (планируется в середине июля/начале августа 2025-го года).

Как это реализивано в 1.x?

Итак, в версии 1.x это работает довольно просто и банально.

У нас есть центральный конфиг ядра – Xray Config (в соотвествующем разделе в админ-панели). Из этого конфига панель извлекает все Inbound'ы и их тэги. Тэг является уникальным и явно идентифицирует Inbound.

При подключении Remnawave Node вы выбираете Inbound'ы, которые будут находиться в конфиге ядра этой ноды.

С другой стороны, при карточке пользователя вы также выбираете активные Inbound'ы, доступные этому пользователя.

Такой базовый подход хоть и довольно просто реализован, но имеет ряд недостатков:

  • Конфигурация ядра глобально – одна для всех нод.
    Если вам жизненно необходимо иметь полностью разные конфиги на каждой ноде – это начинает быть серьезной проблемой.
  • При большом количестве Inbound'ов управление пользователями начинает приносить головную боль.
    Из-за того, что пользователь привязывается напрямую к определенным Inbound'у, при их частом изменении управление пользователями становится очень сложным.
  • При изменении общего конфига перезапускаются все ноды. Если вы сделали ошибку в конфиге, то пользователи не смогут подключиться ни к одной ноде, пока вы не исправите ошибку.
Remna Wave 1x Sum

Эту систему можно отобразить в виде упрощенной схемы выше.

И закрепим материал: глобально у нас есть один центральный конфиг ядра, в карточке ноды мы выбираем, какие Inbound'ы будут физически присутствовать в конфиге ядра этой ноды, а затем в карточке пользователя мы выбираем, какие Inbound'ы будут доступны для этого пользователя. По итогу Remnawave при старте ноды собирает готовый конфиг и отправляет его в ядро.

Как это будет в 2.x?

Начиная с версии 2.0 мы вводим новые понятия в рамках панели:

  • Профили конфигурации (Config Profiles) – каждый профиль конфигурации – это полноценный конфиг ядра. Вы можете создать сколько угодно профилей конфигурации – но тэги Inbound'ов должны быть глобально уникальные. После сохранения профиля Remnawave извлечет все тэги Inbound'ов этого профиля и сохранит их в базу данных.
  • Внутренние сквады (Internal Squads) – пользовательские группы. В каждом из сквадов вы можете выбрать, какие Inbound'ы будут в нем доступны. Можно выбирать любые Inbound'ы со всех доступных Профилей конфигурации.

Профили конфигурации (Config Profiles)

Config Profiles Preview 1

В новом разделе Профили конфигурации можно создать новые профили, скачать JSON-файл уже существующего профиля, удалить профиль.

Редактор в целом не претерпел изменений и выглядит так же, как и раньше.

Config Profiles Preview 1

Как уже упоминалось выше – каждый Профиль конфигурации – это полноценный конфиг ядра, который включает в себя не только массив с Inbounds, но и всю остальную конфигурацию ядра.

Плавно перейдем в раздел Ноды и посмотрим, как теперь будет выглядеть выбор Inbound'ов для ноды.

Config Profiles Preview 1 Config Profiles Preview 1

Итак, мы видим, что в новой системе мы можем выбрать Профиль конфигурации, который будет активен на конкретной ноде, и какие Inbound'ы из выбранного Профиля будут активированы на этой ноде.

Просуммируем:

  • Вы можете создавать сколько угодно Профилей конфигурации – но тэги Inbound'ов должны быть глобально уникальные.
  • Вы можете выбрать Профиль конфигурации для ноды и указать, какие Inbound'ы из выбранного Профиля будут активированы на этой ноде.

Внутренние сквады (Internal Squads)

Перейдем к Внутренним сквадам (Internal Squads). В общем списке доступна небольшая статистика по сквадам: количество пользователей, количество активных Inbound'ов по каждому скваду.

Config Profiles Preview 1 Config Profiles Preview 1

В карточке редактирования сквада вы можете указать активные для этого сквада Inbound'ы.
Как уже упоминалось выше – вы можете выбирать любые Inbound'ы со всех доступных Профилей конфигурации.

Внутренние сквады, в свою очередь, связаны с пользователями.

Config Profiles Preview 1

В карточке пользователя доступен выбор сквадов: пользователю можно присвоить несколько сквадов одновременно.

Также в карточке пользователя есть шорткат к быстрому редактированию конкретного сквада.

Config Profiles Preview 1

При таком уровне абстракции администратор не может сразу понять, к каким нодам привязан конкретный пользователь. Рассмотрим возможный выход из ситуации.

В карточке пользователя доступна новая кнопка – View Accessible Nodes.

Config Profiles Preview 1

В данном разделе отображаются все ноды, доступные пользователю, а также поясняется, почему именно у него есть доступ к каждой из них - в частности, из‑за членства в соответствующих сквадах.

Итоги

Ниже представлена схема новой системы.

Remnawave 2x Squads

Новая система устраняет перечисленные недостатки старой: при изменении профиля конфигурации (конфига ядра) перезапускаются только ноды, использующие этот профиль.