docs: refine and expand the guide on using the Remnawave panel, including detailed instructions on host creation, user management, and subscription retrieval

This commit is contained in:
kastov
2025-07-17 04:07:16 +03:00
parent a4b20c5345
commit e910df0c26
16 changed files with 155 additions and 2 deletions

BIN
blog/learn/17.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

BIN
blog/learn/18.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

BIN
blog/learn/19.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

BIN
blog/learn/20.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

BIN
blog/learn/21.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

BIN
blog/learn/22.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 KiB

BIN
blog/learn/23.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

BIN
blog/learn/24.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 KiB

BIN
blog/learn/25.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 KiB

BIN
blog/learn/26.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

BIN
blog/learn/27.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

BIN
blog/learn/28.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

BIN
blog/learn/29.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

BIN
blog/learn/30.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

BIN
blog/learn/31.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

View File

@@ -5,7 +5,7 @@ tags: [learn]
date: 2025-07-17
---
В этой небольшой статьи мы во всех подробностях и деталях расскажем о функциях панели, которые помогут вам быстро разобраться с ее работой.
В этой небольшой статье мы во всех подробностях и деталях расскажем о функциях панели, которые помогут вам быстро разобраться с ее работой.
Мы буквально пройдемся от первого входа в админ-панель до импорта подписки в клиентские приложения.
<!-- truncate -->
@@ -208,4 +208,157 @@ Remnawave (как панель) не содержит в себе Xray-яд
`Хост` эта такая сущность, которая "направит" пользователя на ноду из ваших нод.
// to be continued...
На руках у пользователя в большинстве случаев будет _ссылка_, в простонародье это называется подписка (или subscrtipion url) или просто _ссылка_.
Subscriotion URL это ссылка, при открытии которой пользователь получит список _хостов_, которые ему доступны.
А вот куда уже будут направлены хосты это как раз то, чем мы сейчас и займемся.
И закрепим материал:
- у конечного пользователя на руках будет _ссылка_
- при добавлении в клиентское приложение, пользователь получит список _хостов_, которые ему доступны
- пользователь выбирает для подключения один из _хостов_ и подключается к ноде
## Хосты {#hosts}
<img src={require('./17.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
После перехода в раздел `Хосты` (`Hosts`) выберите опцию `Создать хост` (`Create host`).
Перед вами открылось модальное окно.
- `Видимость хоста` (`Host visibility`) этот пункт отвечает за то, будет ли хост виден пользователям.
- Например, мы можем создать хост, но отключить ему видимость в таком случае в подписке пользователя не будет отображаться этот хост.
- `Примечание` (`Remark`) это "название" хоста, которое будет видно пользователю в клиентском приложении.
<img src={require('./18.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
Но прежде чем вы аправим_ хост на одну из наших нод, необходимо выбрать к какому **инбаунду** будет принадлежать этот **хост**.
Дело в том, что **хост** (как сущность) **строго привязан к одному конкретному инбаунд**, так как хост наследует все настройки инбаунда, а "Расширенные настройки" в карточке хоста позволяют _перезаписать_ некоторые из них.
Нажимаем на кнопку выбора **инбаундов** и перед нами открывается уже знакомое окно с Сonfig Profiles. Однако, в этот раз вы можете выбрать один единственный **инбаунд** из любого созданного вами профиля.
Выберем `Shadowsocks` и сохраним изменения.
<img src={require('./19.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
Внимательный читатель мог заметить, что после выбора **инбаунда** поле **порт** автоматически заполнилось. Хорошее замечение!
Как уже упоминалось выше, хост наследует все параметры инбаунды, следовательно и порт тоже.
> Примечание: в большинстве случаев порт в хосте будет совпадать с портом инбаунда, но это не всегда так. В некоторых конфигурациях Xray порты инбаунда и хоста могут отличаться.
Остается единственные поле, которые мы еще не обсудили это `адрес`. C ним немного интересная история, сейчас расскажу.
В адрес хоста вы можете вписать и IP-адрес, и домен. Но! Адрес или домен обязательно должны быть **направлены** на ноду, к которой вы хотите подключиться.
Базовый пример: чуть ранее мы добавили ноду с IP-адресом `1.2.3.4`, затем мы создали A-запись в DNS-сервере, которая будет указывать на этот IP-адрес.
Пусть будет: `node.domain.com > 1.2.3.4`.
Это означает, что в поле адрес мы можем вписать `node.domain.com`.
> Примечание: но почему просто всегда не указывать просто IP-адрес? Дело в том, что IP-адрес вашей ноды может изменится, но при этом сам хост останется тем же. И чтобы конечный пользователь получил новый IP-адрес, ему необходимо будет обновить подписку. А процедуры "автообновления" подписки в клиентских приложениях могут работать далеко не всегда.
> С другой стороны, если вы используете домен, то чтобы у этого хоста обновить IP-адрес, вам необходимо будет обновить DNS-запись. Никаких дополнительных действий со стороны пользователя не потребуется.
---
<img src={require('./20.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
И глянем одним глазком на расширенные опции, которые доступны в карточке хоста. Многие из них предоставляет возможность перезаписать некоторые параметры инбаунда из конфигурации Xray. Например, SNI позволяет перезаписать аналогичный параметр в конфигурации инбаунда serverNames. В случае отсутствия этого параметра в хосте, Remnawave будет использовать параметр из конфигурации инбаунда.
---
<img src={require('./21.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
После создания хоста, он появится в общем списке хостов. При нажатии на него, откроется окно редактирования.
## Интерсекция {#remark-three}
Итак, мы создали хост, который будет направлять пользователя на одну из наших нод.
Теперь нам необходимо создать пользователя, который будет использовать этот хост.
Но перед этим, давайте рассмотрим, что же такое `внутренний сквад`.
Чуть ранее мы уже обсуждали `Config Profiles`, которые представляют из себя полноценные конфигурации ядра Xray и в карточке ноды мы могли выбрать активный профиль и активировать инбаунды.
Если попробовать представить, что `Config Profile` это "шаблон" для ноды, то `внутренний сквад` это "шаблон" для пользователя. Но не совсем шаблон. Скорее `группа`.
**Один пользователь может быть привязан сразу к нескольким внутренним сквадам.**
<img src={require('./23.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
В карточке редактирования внутреннего сквада мы можем включать/выключать инбаунды, которые будут доступны пользователям, которые состоят в этом скваде.
В нашем случае, у нас уже есть один внутренний сквад, который содержит один инбаунд `Shadowsocks`.
Значит, если мы создадим пользователя и привяжем его к этому скваду, то он будет иметь доступ только к `Shadowsocks`.
:::tip Совет
Мы уже подробно рассказывали про устройство профилей конфигураций и внутренних сквадов в [этой статье](/blog/misc/new-profiles-and-squads/explaining-new-profile-and-squads-system). Статья доступна на русском языке.
:::
## Пользователи {#users}
Итак, после такой длительной подготовки мы наконец-то можем создать пользователя.
Перейдем во вкладку `Пользователи` (`Users`) и выберем опцию `Создать пользователя` (`Create user`).
<img src={require('./22.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
Для начала нам необходимо выбрать имя пользователя, оно может быть любым, но не должно содержать пробелов.
В разделе `Traffic & Limits` мы можем установить лимиты для пользователя.
- `Лимит трафика` (`Data limit`) лимит трафика в ГБ.
- `Стратегия сброса трафика` (`Traffic reset strategy`) стратегия сброса трафика. Она определяет как часто панель будет сбрасывать лимит трафика для этого пользователя.
В качествет обучающего примера, мы установим лимит в 1ГБ и стратегию сброса по трафику `Сбрасывать ежедневно`.
В разделе `Access Settings` мы будем управлять сроком действия подписки, а так же определим какие в каких `внутренних сквадах` будет состоять пользователь.
Выберем срок действия подписки в 1 месяц и активируем один единственный доступный `внутренний сквад`.
<img src={require('./24.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
Сохраним изменения и после этого наш первый пользователь будет успешно создан.
<img src={require('./25.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
После создания пользователя мы вернемся в таблицу пользователей. Прошу уделить внимание (зона выделена на скриншоте выше) на функции которые доступны в этой таблице. Вы можете гибко управлять колонками, которые будут видны, включить режим полного экрана и включить поиск по некоторым полям. Поверьте, доступные функции вам очень пригодятся в будущем.
### Получение подписки {#get-subscription}
<img src={require('./26.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
После создания пользователя, мы можем получить его подписку.
Для этого нажмите на кнопку указанную на скриншоте.
Альтернативный способ нажать на иконку карандаша и открыть карточку пользователя.
<img src={require('./27.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
Давайте откроем ее в браузере.
<img src={require('./28.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
Как мы видим, все работает корректно.
## Интерсекция {#remark-four}
Итак, мы создали пользователя, получили его подписку.
Давайте для теста попробуем использовать эту подписку в клиентском приложении.
Для примера возьмем приложение [Clash Verge Rev](https://github.com/clash-verge-rev/clash-verge-rev).
После импорта подписки, мы может подключиться к нашей ноде и проверить, что все работает корректно.
<img src={require('./29.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
Как и было обещано выше, теперь мы можем посмотреть как обновилась статистика на домашней странице панели и в карточке ноды.
<img src={require('./30.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
<img src={require('./31.jpeg').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
---