mirror of
https://github.com/remnawave/panel.git
synced 2026-04-13 17:54:14 +00:00
522 lines
43 KiB
Markdown
522 lines
43 KiB
Markdown
---
|
||
sidebar_position: 1
|
||
title: Быстрый старт
|
||
---
|
||
|
||
В этой небольшой статье мы во всех подробностях и деталях расскажем о функциях панели, которые помогут вам быстро разобраться с ее работой.
|
||
Мы буквально пройдемся от первого входа в админ-панель до импорта подписки в клиентские приложения.
|
||
|
||
<!-- truncate -->
|
||
|
||
# Быстрый старт
|
||
|
||
:::warning Внимание
|
||
Эта статья написана для версии панели 2.0 и новее.
|
||
:::
|
||
|
||
:::danger Дисклеймер
|
||
Статья так же подразумевает, что вы уже установили Remnawave и ее компоненты. Статья в большей степени будет сфокусирована на разборе функционала панели.
|
||
:::
|
||
|
||
---
|
||
|
||
## Первые шаги {#first-steps}
|
||
|
||
Итак, после того как вы установили панель и необходимые компоненты, в браузере откроется админ-панель.
|
||
|
||
<img src={require('./images/1.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
||
|
||
Для начала нам необходимо зарегистрироваться. Зарегистрированный пользователь будет является "супер-админом".
|
||
|
||
:::tip Совет
|
||
Если вы вдруг забудете пароль, вы всегда можете пересоздать супер-админа через Rescue CLI.
|
||
|
||
Для входа в Rescue CLI введите команду: `docker exec -it remnawave remnawave`
|
||
:::
|
||
|
||
---
|
||
|
||
## Главная страница {#home}
|
||
|
||
После регистрации вы увидите главную страницу панели.
|
||
|
||
<img src={require('./images/2.webp').default} width="100%" style={{borderRadius: '8px'}} alt="First steps" />
|
||
|
||
Разберем все элементы, которые вы видите на этой странице.
|
||
|
||
### Статистика Remnawave {#remnawave-stats}
|
||
|
||
<img src={require('./images/3.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Remnawave stats"/>
|
||
|
||
В первых двух блоках – "Remnawave Usage", "Process Details" – вы можете увидеть как Remnawave использует ресурсы системы в данный момент. В "Process Details" вы можете увидеть, какие из внутренних процессов Remnawave используют больше всего ресурсов.
|
||
В зависимости от настройки, REST-API процессов может быть больше, чем один.
|
||
|
||
### Расход трафика {#bandwidth}
|
||
|
||
<img src={require('./images/4.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Traffic usage"/>
|
||
|
||
В этом блоке отображается общая статистика по расходу трафика по всем пользователям со сравнением по времени за аналогичный период.
|
||
Возьмем например – "Сегодня". Если мы открыли панель в 16:00, то в этом блоке будет отображаться статистика за период с 0:00 до 16:00, но сравнение будет происходит с вчерашним календарным днем. (0:00 - 23:59)
|
||
|
||
На данный момент на скриншоте все по нулям, но после того как мы все настроим и подключимся нашим пользователем – этот блок будет отражать реальную картину. В конце этой статьи обязательно будет дополнительный скриншот.
|
||
|
||
### Пользователи {#home-users}
|
||
|
||
<img src={require('./images/5.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Users"/>
|
||
|
||
Эти три блока мы объединим в одно описание.
|
||
|
||
Думаю, вы уже заметили, что есть две разных карточки, которые показывают онлайн пользователей:
|
||
|
||
1. Раздел `Система` > `Total online on nodes`
|
||
- Отображает общее количество онлайн пользователей по всем нодам. Один пользователь может быть **_одновременно_** подключен к нескольким нодам, в этой графе показанно сумма всех пользователей на всех нодах, включая дубликаты.
|
||
- **Пример**: если пользователь Х подключен к нодам A и B, то в этой графе будет отображаться 2 пользователя.
|
||
2. Раздел `Онлайн` > `В сети`
|
||
- Отображает общее количество онлайн пользователей, но не учитывает дубликаты.
|
||
- **Пример**: если пользователь Х подключен к нодам A и B, то в этой графе будет отображаться 1 пользователь.
|
||
|
||
---
|
||
|
||
## Интерсекция {#remark-one}
|
||
|
||
Чтобы продолжить, необходимо закрепить некоторые базовые моменты.
|
||
|
||
Remnawave (как панель) – не содержит в себе Xray-ядра, следовательно даже если вы создатите пользователя, настроите хосты, инбаунды и прочее, НО не подключите **Remnawave Node** – пользователь не сможет подключиться к прокси. Никакие настройки не помогут, пока не подключите **Remnawave Node**.
|
||
|
||
Следовательно, нашим дальнейшим шагом будет подключение **Remnawave Node** – поэтому мы перейдем в раздел `Ноды` **>** `Управление` (`Nodes` **>** `Management`).
|
||
|
||
:::warning Внимание
|
||
В этой статье не будет описано, как именно установить **Remnawave Node** на этот или другой сервер, для подробной информации по установке, пожалуйста, обратитесь к [документации по установке](/docs/install/remnawave-node).
|
||
:::
|
||
|
||
## Ноды {#nodes}
|
||
|
||
> мы находимся в разделе `Ноды` **>** `Управление` (`Nodes` **>** `Management`)
|
||
|
||
<img src={require('./images/6.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Nodes management" />
|
||
|
||
Итак, в самом верху находится небольшой блок из 4-ех карточек, которые отображает некоторую статистику по текущему часу. (От начала часа до текущего момента: если вы открываете панель в 16:30, то статистика будет за период с 16:00 до 16:30).
|
||
|
||
Чуть ниже находится блок действий, выберите опцию `Создать новую ноду` (`Сreate new node`).
|
||
|
||
### Node vitals {#node-vitals}
|
||
|
||
<img src={require('./images/7.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Node vitals" />
|
||
|
||
В этом блоке находятся жизненно важные параметры, без которых создать ноду не получится.
|
||
|
||
- Страна – выберите страну, в которой будет находиться нода.
|
||
- Внутреннее имя – это имя, которое будет использоваться для идентификации ноды в Remnawave.
|
||
- Адрес – IP-адрес ноды (может так же являться доменом)
|
||
- Порт – порт, на котором **уже** запущен **Remnawave Node**.
|
||
|
||
### Consumption {#consumption}
|
||
|
||
<img src={require('./images/8.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Consumption" />
|
||
|
||
Коэффиент – множитель к трафику пользователя (1.0 = нормальный, 0.5 = половина, 2.0 = двойной).
|
||
Простыми словами, это означает, что если лимит трафика пользователя составляет 1 ГБ, а множитель потребления равен 2.0, пользователь сможет использовать только 0.5 ГБ трафика (реальное использование), но Remnawave покажет использование как 1 ГБ и пользователь будет переведен в статус **LIMITED**.
|
||
|
||
### Core Configuration {#core-configuration}
|
||
|
||
<img src={require('./images/9.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Core Configuration" />
|
||
|
||
Этот блок так же является обязательно и без него нельзя создать ноду.
|
||
|
||
Здесь вам необходимо выбрать, с каким `Config Profile` вы хотите запустить ноду.
|
||
|
||
Но, так как мы буквально только что запустили панель, у нас имеется только один профиль, который был автоматически сгенерирован панелью.
|
||
|
||
Нажмите на кнопку `Select config profile` (`Select config profile`), чтобы выбрать профиль.
|
||
|
||
<img src={require('./images/10.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Сonfig Profiles" />
|
||
|
||
Справа откроется меню, в которым вы можете увидеть все профили, а так же какие инбаунды находятся в каждом из профилей.
|
||
|
||
Для нас сейчас главное закрепить: мы можем выбрать только один профиль, так как профиль представляет из себя полноценную конфигурацию ядра Xray. Так что просто технически невозможно выбрать несколько профилей.
|
||
|
||
В профиле, который был по умолчанию – сейчас находится только один инбаунд и это инбаунд `Shadowsocks`.
|
||
В будущем, если в одном профиле будет несколько инбаундов, вы сможете выбрать, какие из них будут использовать на ноде. В рамках одного профиля вы никак не ограничены в количество активных инбаундов.
|
||
|
||
Так как у нас сейчас нет выбора, мы выберем `Shadowsocks`.
|
||
|
||
<img src={require('./images/11.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Сonfig Profiles" />
|
||
|
||
Обязательно сохраните выбор, нажав на синюю кнопку в верху экрана.
|
||
|
||
### Tracking & Billing {#tracking-and-billing}
|
||
|
||
<img src={require('./images/12.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Tracking & Billing" />
|
||
|
||
Этот раздел представляет из себя набор строго опциональных элементов, которые не обязательно должны быть заполнены.
|
||
|
||
- `Infrastructure Provider` – на данный момент этот селектор недоступен, так как мы еще не создали "провайдеров", к которым можно привязать эту ноду. Чуть позже в этой статьи мы обязательно это сделаем. Вкратце, провайдер (или можно сказать хостер) – это сайт, где вы арендуете VPS/VDS. Если создать такого провайдера, вы можете привязать к нему ноду, а Remnawave будет отображать эту информацию в общем списке нод.
|
||
|
||
- `Track traffic usage` – этот чекбокс отвечает за то, будет ли Remnawave отслеживать использование трафика на ноде. На самом деле панель в любом будет случае отслежить и записывать трафик, но если включить и настроить этот пункт, при достижении лимита – панель пришлет вам уведомление о том, что лимит достигнут. Так же в указанных день – этот лимит будет сбрасываться.
|
||
|
||
Пример: допустим, мы арендовали VPS у хостера Hetzner. Они предоставляют 20ТБ трафика ежемесячно. Расчет трафика у Hetzner происходит по схеме IN+OUT, а так как при использовании Xray идет расход трафика в обе стороны – наш реальный лимит это 10ТБ.
|
||
В Hetzner трафик сбрасывается каждый месяц 1-го числа.
|
||
|
||
Основываясь на этих данных, мы можем настроить следующие параметры:
|
||
|
||
- `Traffic limit` – лимит трафика в ГБ. В нашем случае это 10ТБ.
|
||
- `Reset day` – день, в который будет сбрасываться лимит трафика. В нашем случае это 1-ое число.
|
||
- `Notification %` – процент, в котором будет отправлено уведомление о достижении лимита. В нашем случае это 90%.
|
||
|
||
И при таких параметрах, Remnawave будет отправлять уведомление о том, что лимит достигнут, когда будет использовано 9ТБ трафика. А затем, 1-го числа трафик будет сброшен и все начнется сначала.
|
||
|
||
---
|
||
|
||
### Node Management {#node-management}
|
||
|
||
<img src={require('./images/13.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Tracking & Billing" />
|
||
|
||
После того, как мы заполнили все необходимые поля, мы можем создать ноду.
|
||
|
||
<img src={require('./images/14.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Tracking & Billing" />
|
||
|
||
И вот мы снова в общем списке нод, спустя несколько секунд после создания ноды – Remnawave подключиться к ней и запустит ядро Xray.
|
||
|
||
Отслеживать состояние ноды можно по иконке слева (в карточке каждой ноды в общем списке нод), а так же по фоновому цвету карточки.
|
||
|
||
<img src={require('./images/15.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Tracking & Billing" />
|
||
|
||
Если мы нажмем на карточку ноды, откроется модальное окно, где мы можем отредактировать параметры ноды, а так же многие другие параметры.
|
||
|
||
Например, на скриншоте выше выделен блок, который появляется исключительно после создания ноды. Пройдемся по обозначением.
|
||
|
||
- Слева вы можете увидеть иконку и число, которое обозначает количество пользователей, которые подключены к ноде конкретно в данный момент времени.
|
||
- По центру отображается версия ядра Xray, которое запущено на ноде.
|
||
- Справа отображается версия Remnawave Node
|
||
|
||
<img src={require('./images/16.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Tracking & Billing" />
|
||
|
||
Так же появилась кнопка `More actions` (`More actions`), которая открывает дополнительные действия с нодой.
|
||
|
||
- `Show usage` – открывает модальное окно, в котором отображается статистика по использованию ноды за выбранный период по пользователям. Пока что нам нет смысла его открывать, так как там будет пусто. Вернемся к этому чуть позже.
|
||
- `Copy UUID` – копирует UUID ноды, может пригодится для работы с API.
|
||
- `Disable` – отключает ноду.
|
||
- `Delete` – удаляет ноду.
|
||
|
||
## Интерсекция {#remark-two}
|
||
|
||
Итак, мы успешно создали и подключили `Remnawave Node`. И вот, нам уже кажется, что мы можем создать пользователя и подключиться, но нет.
|
||
|
||
Следующим шагом будет создание `хоста`.
|
||
|
||
`Хост` – эта такая сущность, которая "направит" пользователя на ноду из ваших нод.
|
||
|
||
На руках у пользователя в большинстве случаев будет _ссылка_, в простонародье это называется подписка (или subscription url) или просто _ссылка_.
|
||
|
||
Subscription URL – это ссылка, при открытии которой пользователь получит список _хостов_, которые ему доступны.
|
||
А вот куда уже будут направлены хосты – это как раз то, чем мы сейчас и займемся.
|
||
|
||
И закрепим материал:
|
||
|
||
- у конечного пользователя на руках будет _ссылка_
|
||
- при добавлении в клиентское приложение, пользователь получит список _хостов_, которые ему доступны
|
||
- пользователь выбирает для подключения один из _хостов_ и подключается к ноде
|
||
|
||
## Хосты {#hosts}
|
||
|
||
<img src={require('./images/17.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
После перехода в раздел `Хосты` (`Hosts`) выберите опцию `Создать хост` (`Create host`).
|
||
|
||
Перед вами открылось модальное окно.
|
||
|
||
- `Видимость хоста` (`Host visibility`) – этот пункт отвечает за то, будет ли хост виден пользователям.
|
||
- Например, мы можем создать хост, но отключить ему видимость – в таком случае в подписке пользователя не будет отображаться этот хост.
|
||
- `Примечание` (`Remark`) – это "название" хоста, которое будет видно пользователю в клиентском приложении.
|
||
|
||
<img src={require('./images/18.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Но прежде чем вы _направим_ хост на одну из наших нод, необходимо выбрать к какому **инбаунду** будет принадлежать этот **хост**.
|
||
|
||
Дело в том, что **хост** (как сущность) **строго привязан к одному конкретному инбаунд**, так как хост наследует все настройки инбаунда, а "Расширенные настройки" в карточке хоста позволяют _перезаписать_ некоторые из них.
|
||
|
||
Нажимаем на кнопку выбора **инбаундов** и перед нами открывается уже знакомое окно с Сonfig Profiles. Однако, в этот раз вы можете выбрать один единственный **инбаунд** из любого созданного вами профиля.
|
||
|
||
Выберем `Shadowsocks` и сохраним изменения.
|
||
|
||
<img src={require('./images/19.webp').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('./images/20.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
И глянем одним глазком на расширенные опции, которые доступны в карточке хоста. Многие из них предоставляет возможность перезаписать некоторые параметры инбаунда из конфигурации Xray. Например, SNI позволяет перезаписать аналогичный параметр в конфигурации инбаунда – serverNames. В случае отсутствия этого параметра в хосте, Remnawave будет использовать параметр из конфигурации инбаунда.
|
||
|
||
---
|
||
|
||
<img src={require('./images/21.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
После создания хоста, он появится в общем списке хостов. При нажатии на него, откроется окно редактирования.
|
||
|
||
## Интерсекция {#remark-three}
|
||
|
||
Итак, мы создали хост, который будет направлять пользователя на одну из наших нод.
|
||
Теперь нам необходимо создать пользователя, который будет использовать этот хост.
|
||
|
||
Но перед этим, давайте рассмотрим, что же такое `внутренний сквад`.
|
||
|
||
Чуть ранее мы уже обсуждали `Config Profiles`, которые представляют из себя полноценные конфигурации ядра Xray и в карточке ноды мы могли выбрать активный профиль и активировать инбаунды.
|
||
|
||
Если попробовать представить, что `Config Profile` – это "шаблон" для ноды, то `внутренний сквад` – это "шаблон" для пользователя. Но не совсем шаблон. Скорее `группа`.
|
||
|
||
**Один пользователь может быть привязан сразу к нескольким внутренним сквадам.**
|
||
|
||
<img src={require('./images/23.webp').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('./images/22.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Для начала нам необходимо выбрать имя пользователя, оно может быть любым, но не должно содержать пробелов.
|
||
|
||
В разделе `Traffic & Limits` мы можем установить лимиты для пользователя.
|
||
|
||
- `Лимит трафика` (`Data limit`) – лимит трафика в ГБ.
|
||
- `Стратегия сброса трафика` (`Traffic reset strategy`) – стратегия сброса трафика. Она определяет как часто панель будет сбрасывать лимит трафика для этого пользователя.
|
||
|
||
В качествет обучающего примера, мы установим лимит в 1ГБ и стратегию сброса по трафику – `Сбрасывать ежедневно`.
|
||
|
||
В разделе `Access Settings` мы будем управлять сроком действия подписки, а так же определим какие в каких `внутренних сквадах` будет состоять пользователь.
|
||
|
||
Выберем срок действия подписки в 1 месяц и активируем один единственный доступный `внутренний сквад`.
|
||
|
||
<img src={require('./images/24.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Сохраним изменения и после этого наш первый пользователь будет успешно создан.
|
||
|
||
<img src={require('./images/25.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
После создания пользователя мы вернемся в таблицу пользователей. Прошу уделить внимание (зона выделена на скриншоте выше) на функции которые доступны в этой таблице. Вы можете гибко управлять колонками, которые будут видны, включить режим полного экрана и включить поиск по некоторым полям. Поверьте, доступные здесь функции вам очень пригодятся в будущем.
|
||
|
||
### Получение подписки {#get-subscription}
|
||
|
||
<img src={require('./images/26.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
После создания пользователя, мы можем получить его подписку.
|
||
|
||
Для этого нажмите на кнопку указанную на скриншоте.
|
||
|
||
Альтернативный способ – нажать на иконку карандаша и открыть карточку пользователя.
|
||
|
||
<img src={require('./images/27.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Давайте откроем ее в браузере.
|
||
|
||
<img src={require('./images/28.webp').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('./images/29.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Как и было обещано выше, теперь мы можем посмотреть как обновилась статистика на домашней странице панели и в карточке ноды.
|
||
|
||
<img src={require('./images/30.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
<img src={require('./images/31.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
---
|
||
|
||
## Config Profiles {#config-profiles}
|
||
|
||
Итак, перейдем в раздел `Config Profiles` (`Config Profiles`).
|
||
|
||
<img src={require('./images/32.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Как уже было сказано выше, `Config Profile` – это "шаблон" для ноды. Каждый профиль содержит полноценную конфигурацию ядра Xray, которая будет передана на ноду при старте ядра.
|
||
|
||
Давайте попробуем создать новый профиль, нажав на кнопку `Создать профиль` (`Create Config Profile`).
|
||
|
||
<img src={require('./images/33.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
После ввода имени профиля, перед нами откроется полноценный редактор конфигурации.
|
||
|
||
Здесь мы можем добавлять/удалять инбаунды, а так же редактировать все остальные параметры конфигурации.
|
||
|
||
:::warning Внимание!
|
||
В этой статье не будет объясняется, как правильно настраивать конфигурацию ядра Xray.
|
||
|
||
За дополнительной информацией по синтаксису и функционалу конфигурации ядра Xray, рекомендуем обратиться к [официальной документации](https://xtls.github.io/ru/config/).
|
||
:::
|
||
|
||
Для примера, давайте загрузим уже готовую конфигурацию с помощью кнопки `Загрузить с Github` (`Load from Github`).
|
||
|
||
<img src={require('./images/34.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Но, так как в этом шаблоне всего-лишь один инбаунд, мы еще дополнительно добавим второй инбаунд.
|
||
|
||
Добавляем второй инбаунд в секцию `Inbounds` (`Inbounds`), и дадим ему имя `VLESS`.
|
||
|
||
<img src={require('./images/35.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Вернемся в общий список профилей и посмотрим, что у нас получилось.
|
||
|
||
<img src={require('./images/36.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Как мы видим, в общем списке появился новый профиль – `Sample`, который мы только что создали.
|
||
|
||
Под именем профиля, мы так же можем увидеть две значка с иконкой и цифрами.
|
||
|
||
- левая иконка обозначает количество инбаундов в профиле
|
||
- правая иконка обозначает количество нод, которые используют этот профиль
|
||
|
||
Наш новый профиль содержит 2 инбаунда, и ни одна нода не использует его.
|
||
|
||
Давайте попробуем активировать этот профиль на одной из наших нод.
|
||
Вернемся в карточку ноды и выберем ей другой профиль, и активируем оба инбаунда из этого профиля.
|
||
|
||
<img src={require('./images/37.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Если мы зайдем в раздел `Хосты` (`Hosts`), попробуем создать новый или отредакировать уже имеющийся – мы можем увидеть, что теперь мы можем назначить хосту свежесозданные инбаунды из нового профиля.
|
||
|
||
<img src={require('./images/38.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
---
|
||
|
||
Но даже если мы активируем новый профиль на ноде, добавим хост и привяжем к новому инбаунду – пользователи все равно не получат его до тех пор, пока мы не добавим наши новые инбаунды в `внутренние сквады`.
|
||
|
||
Откроем раздел `Внутренние сквады` (`Internal squads`) и выберем наш единственный сквад – `Default-Squad`.
|
||
|
||
<img src={require('./images/39.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Как мы можем заметить, в этом скваде у нас сейчас активирован только один инбаунд – `Shadowsocks`.
|
||
|
||
Давайте так же активируем все остальные инбаунды, которые содержит наш новый профиль.
|
||
|
||
<img src={require('./images/40.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Не забудьте сохранить изменения после редактирования.
|
||
|
||
Просуммируем все, что мы сделали:
|
||
|
||
- мы создали новый профиль с двумя инбаундами
|
||
- мы активировали этот профиль на одной из наших нод
|
||
- мы добавили хосты, которые будут использовать новые инбаунды
|
||
- мы добавили новые инбаунды в `внутренние сквады`
|
||
|
||
## Шаблоны {#templates}
|
||
|
||
В левом меню панели, мы можем увидеть раздел `Шаблоны` (`Templates`).
|
||
|
||
<img src={require('./images/41.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Как уже упоминалось ранее, после того как вы создали пользователя – вы получили его подписку (ссылку).
|
||
|
||
При открытии которой, пользователь получит список хостов, которые ему доступны.
|
||
Проблема в том, что клиентских приложений существует великое множество, и некоторые из них имеют свой формат подписки, с которым они работают.
|
||
|
||
Глобально можно выделить четыре больших группы форматов подписок:
|
||
|
||
- `Mihomo` – формат, наследник формата Clash (который сейчас уже практически не используется)
|
||
- `Base64`
|
||
- `Xray-json`
|
||
- `Sing-box`
|
||
|
||
Вы наверное уже заметили, что когда мы чуть ранее открывали нашу подписку в браузере – там была красивая страничка, но когда мы добавили ее в клиентское приложение – она добавилась туда без каких-либо проблем.
|
||
|
||
Remnawave автоматически определяет с какого именно клиента (клиентского приложения) пришел запрос на получение подписки. Соотвественно, когда мы открывали подписку из браузера – Remnawave это определил и выдал нам красивую страничку.
|
||
|
||
Когда же запрос придет от клиентского приложения, Remnawave в зависимости от типа клиента, выдаст ему подписку в соотвествующем формате.
|
||
|
||
### Mihomo {#mihomo}
|
||
|
||
<img src={require('./images/42.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Изначально, этот формат назывался `Clash`, однако в настоящее время клиентского/серверного ядра `Clash` больше не существует и ему на замену пришло ядро `Mihomo`.
|
||
|
||
:::tip Совет
|
||
Ознакомиться с документацией Mihomo можно по [ссылке](https://wiki.metacubex.one/ru/config/).
|
||
:::
|
||
|
||
Популярные клиентские приложения, которые используют этот формат:
|
||
|
||
- [Clash Verge Rev](https://github.com/clash-verge-rev/clash-verge-rev)
|
||
- [FlClash](https://github.com/chen08209/FlClash)
|
||
- [ClasX.Meta](https://github.com/MetaCubeX/ClashX.Meta/tree/meta)
|
||
- [Clash Meta For Android](https://github.com/MetaCubeX/ClashMetaForAndroid)
|
||
- [ClashMi](https://github.com/KaringX/clashmi)
|
||
|
||
Это далеко не полный список приложений, которые использует этот формат.
|
||
|
||
### Base64 {#base64}
|
||
|
||
Шаблона для этого формата не существует, так как этот формат является одним из старейших и представляет из себя простой набор "хостов", которые разделены символом `\n` и закодированы в base64.
|
||
|
||
Этот формат подписки используется в тех случаях, когда клиентское приложение не относится к одному из вышеперечисленных форматов.
|
||
|
||
Популярные клиентские приложения, которые используют этот формат:
|
||
|
||
- [Shadowrocket](https://apps.apple.com/tr/app/shadowrocket/id932747118)
|
||
- [Happ](https://happ.su)
|
||
- [V2RayNG](https://github.com/2dust/v2rayNG)
|
||
- [V2RayTUN](https://v2raytun.com/)
|
||
- [V2RayN](https://github.com/2dust/v2rayN)
|
||
|
||
### Xray-json {#xray-json}
|
||
|
||
<img src={require('./images/43.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Один из самых молодых форматов, используется в клиентских приложениях, которые используют ядро `Xray`.
|
||
|
||
Популярные клиентские приложения, которые используют этот формат:
|
||
|
||
- [Happ](https://happ.su)
|
||
- [V2RayTUN](https://v2raytun.com/)
|
||
|
||
### Sing-box {#sing-box}
|
||
|
||
<img src={require('./images/44.webp').default} width="100%" style={{borderRadius: '8px'}} alt="Hosts" />
|
||
|
||
Является аналогом формата `Xray-json`, но используется в клиентских приложениях, которые используют ядро `Sing-box`.
|
||
|
||
Популярные клиентские приложения, которые используют этот формат:
|
||
|
||
- [Sing-box](https://sing-box.sagernet.org/clients/)
|
||
- [Throne](https://github.com/throneproj/Throne)
|
||
- [Nekobox](https://github.com/MatsuriDayo/NekoBoxForAndroid)
|
||
- [Karing](https://karing.app/)
|