Управление ключами
Что такое ключ
Ключ (подписка) — это VPN-конфигурация, привязанная к конкретному пользователю и локации. Когда пользователь оформляет подписку, Tunly автоматически создаёт ключи на всех доступных локациях.
Каждый ключ содержит:
- Subscription URL — ссылка для подключения в VPN-клиенте (обновляется автоматически)
- Subscription Token — уникальный идентификатор подписки
- Конфигурацию VLESS — на каждом сервере свой конфиг
Один пользователь может иметь несколько подписок (например, после продления или покупки нового тарифа).
Обзор раздела
Раздел Ключи показывает все активные и истёкшие ключи. Над таблицей расположены карточки с метриками:
| Метрика | Описание |
|---|---|
| Всего | Общее количество ключей. Иконка молнии показывает WebSocket-подключение. Счётчик “+N новых” показывает ключи, созданные за текущую сессию |
| Активные | Ключи с неистёкшим сроком |
| Истекшие | Ключи с истёкшим сроком |
| Трафик | Суммарный трафик по всем ключам |
| Онлайн | Количество пользователей с активным VPN-подключением прямо сейчас |
Таблица ключей
Столбцы
| Столбец | Описание |
|---|---|
| Ключ | Первые 16 символов subscription URL. Кнопка копирования рядом |
| Пользователь | Имя, username, Telegram ID. Бейдж бот-скора при подозрительных аккаунтах |
| Трафик | Объём переданных данных (обновляется в реальном времени через WebSocket) |
| Тариф | Название тарифного плана (Пробный, 1 месяц, 3 месяца и т.д.) |
| Статус | Активен или Истёк (определяется динамически по текущему времени) |
| Онлайн | Пульсирующая зелёная точка, если пользователь подключён к VPN |
| Истекает | Дата истечения + живой обратный отсчёт (дни, часы, минуты, секунды) |
Цвета обратного отсчёта
| Оставшееся время | Цвет |
|---|---|
| > 7 дней | Зелёный |
| 3-7 дней | Жёлтый |
| < 3 дней | Оранжевый |
| < 1 часа | Красный |
| Истекла | Красный, текст “Истекла” |
Поиск и фильтрация
- Поиск — по имени пользователя, username, Telegram ID и тексту ключа
- Фильтр по статусу: Активен, Истёк
- Фильтр по тарифу: Пробный, 1 месяц, 3 месяца, 6 месяцев, 1 год
Контекстное меню
Для каждого ключа доступно меню (кнопка с тремя точками):
- Подробнее — открывает детальную карточку ключа
- Перевыпустить — перегенерирует конфигурацию VPN
- Удалить — удаляет ключ безвозвратно
Детальная карточка ключа
Кликните по строке ключа в таблице для открытия полноэкранной карточки.
Шапка
- Номер ключа (Ключ #ID) и индикатор онлайн-подключения
- Статус подписки: Активна / Истекла
- Username и Telegram ID пользователя (кликабельные, копируются)
Кнопки действий
- Токен — копирует subscription token в буфер обмена
- URL — копирует subscription URL в буфер обмена
- Удалить — удаляет ключ (с подтверждением)
Блок информации
Три карточки в верхней части:
- Таймер — живой обратный отсчёт до истечения (дни, часы, минуты, секунды)
- Тариф — название тарифного плана
- Онлайн — количество онлайн IP-адресов или “Нет”
Список полей:
- Создана — дата и время создания ключа
- Истекает — дата и время истечения
- Стоимость — цена тарифного плана
Токен и URL подписки
Отдельный блок с полным токеном и URL подписки. Клик по строке копирует значение в буфер обмена.
Локации
Для каждой локации в подписке отображается:
- Флаг и название локации
- Статус онлайн — количество онлайн IP-адресов (в реальном времени через WebSocket)
- Количество забаненных IP — если есть заблокированные устройства
- Список серверов — имя, IP, тип VPN (VLESS/Outline), статус работы
- Конфигурация — строка конфигурации для каждого сервера (клик копирует)
Создание ключей
Ключи создаются автоматически при:
- Оформлении подписки пользователем через Mini App
- Назначении тарифа вручную через карточку пользователя (раздел Пользователи -> кнопка Тариф)
При создании Tunly автоматически:
- Выбирает серверы на каждой доступной локации (на основе заполненности)
- Создаёт VPN-пользователя в 3X-UI на каждом сервере
- Генерирует subscription URL с автоматическим обновлением конфигурации
- Отправляет ключ пользователю через бота
Продление ключей
Продление выполняется через карточку пользователя (раздел Пользователи):
- Откройте карточку пользователя
- Нажмите Продлить
- Укажите количество дней
- Все активные ключи пользователя будут продлены
Перевыпуск ключей
Перевыпуск (reissue) — это регенерация VPN-конфигурации без изменения срока действия. Полезно, когда:
- Конфигурация перестала работать
- Сменился IP сервера
- Нужно обновить параметры подключения
Перевыпуск одного ключа
- В таблице ключей нажмите меню (три точки) рядом с нужным ключом
- Выберите Перевыпустить
- Дождитесь завершения (иконка загрузки на строке ключа)
Массовый перевыпуск всех ключей
Нажмите кнопку Перевыпустить все над таблицей. Будут перевыпущены все активные ключи по очереди (истёкшие пропускаются). Прогресс отображается в процентах на кнопке.
Массовый перевыпуск выбранных
- Отметьте нужные ключи чекбоксами
- В плавающей панели внизу нажмите кнопку перевыпуска
- Подтвердите действие
Между перевыпуском каждого ключа есть задержка 0.5 секунды для снижения нагрузки на серверы.
Управление устройствами
В детальной карточке ключа для каждой локации отображаются устройства (IP-адреса), которые подключались к VPN.
Статусы устройств
| Статус | Индикатор | Описание |
|---|---|---|
| Онлайн | Зелёная пульсирующая точка, зелёная подсветка строки | Устройство подключено прямо сейчас |
| Оффлайн | Серая точка | Устройство отключено, показывается время последнего подключения |
| Заблокирован | Красная иконка бана, красная подсветка строки | IP заблокирован, устройство не может подключиться |
Блокировка IP
Если устройство превышает лимит или подозрительно:
- Откройте детальную карточку ключа
- Найдите нужный IP в списке устройств локации
- Нажмите Забанить рядом с IP-адресом
- Подтвердите действие
Заблокированный IP теряет доступ к VPN через эту локацию.
Разблокировка IP
- Найдите заблокированный IP (отмечен красным бейджем “заблокирован”)
- Нажмите Разбанить
Лимит устройств
Tunly отслеживает количество уникальных IP-адресов, одновременно подключённых к VPN. Если количество превышает лимит, в карточке устройств появляется соответствующее предупреждение.
История устройств
Для каждого устройства хранится:
- IP-адрес
- Время последнего подключения
- Статус бана (если применимо)
- Причина бана
Устройства сортируются: сначала онлайн, затем заблокированные, затем оффлайн.
Массовые действия
При выборе нескольких ключей чекбоксами появляется плавающая панель с действиями:
| Действие | Описание |
|---|---|
| Перевыпустить | Перегенерирует конфигурации для выбранных активных ключей |
| Удалить | Безвозвратно удаляет выбранные ключи (с подтверждением) |
Удаление ключа не удаляет пользователя. Пользователь останется в системе, но потеряет доступ к VPN.
Обновление данных
Таблица ключей обновляется автоматически:
- Каждые 30 секунд — полное обновление списка ключей
- В реальном времени — статус онлайн, трафик и новые ключи через WebSocket
- Обратный отсчёт — таймер истечения обновляется каждую секунду