---
title: Summing up Config&Profiles
authors: remnawave
tags: [misc]
date: 2025-06-30
---

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

<!-- truncate -->

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

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

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

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

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

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

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

<img src={require('./remnawave_1x_sum.png').default} width="100%" style={{borderRadius: '8px'}} alt="Remna Wave 1x Sum" />

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

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

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

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

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

### Профили конфигурации (Config Profiles) {#config-profiles}

<img src={require('./config_profiles_preview_1.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

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

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

<img src={require('./config_profiles_preview_2.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

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

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

<img src={require('./config_profiles_preview_3.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

<img src={require('./config_profiles_preview_4.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

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

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

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

### Внутренние сквады (Internal Squads) {#internal-squads}

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

<img src={require('./internal_squads_preview_1.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

<img src={require('./internal_squads_preview_2.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

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

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

<img src={require('./internal_squads_preview_3.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

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

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

<img src={require('./internal_squads_preview_4.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

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

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

<img src={require('./internal_squads_preview_5.png').default} width="100%" style={{borderRadius: '8px'}} alt="Config Profiles Preview 1" />

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

### Итоги

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

<img src={require('./remnawave_2x_squads.png').default} width="100%" style={{borderRadius: '8px'}} alt="Remnawave 2x Squads" />

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