--- title: Telegram-бот description: Подключите Telegram-бота к 3x-ui для выполнения команд, периодических отчётов, оповещений о событиях (вход, CPU, доступность узлов), резервных копий и самообслуживания клиентов. icon: Send --- 3x-ui умеет управлять Telegram-ботом для мониторинга, оповещений, резервного копирования и удалённого управления. Администраторы получают полный контроль; обычные пользователи (привязанные по Telegram ID) могут проверять собственный расход трафика и ссылки. Ищете новости и поддержку сообщества? Присоединяйтесь к официальному Telegram-каналу [@XrayUI](https://t.me/XrayUI). Это отдельный канал, не связанный с описанным ниже ботом, которого вы запускаете самостоятельно для управления собственной панелью. ## Настройка ### Создайте бота Напишите [@BotFather](https://t.me/BotFather), отправьте `/newbot` и скопируйте **токен бота**. ### Узнайте свой Telegram ID Получите свой числовой идентификатор пользователя Telegram (после подключения бот сообщит его по собственной команде `/id`). Это ваш **админский** ID. ### Настройте панель В настройках панели включите Telegram-бота и задайте **токен** и **админские chat ID** (через запятую). Сохраните, затем напишите своему боту. Проверьте свой токен, админские ID и расписание отчётов, прежде чем вставлять их в панель: ## Команды Эти команды отображаются в меню команд Telegram: `/start`, `/help`, `/status`, `/id`. Дополнительные команды: | Команда | Кому | Действие | | ------------------ | ------ | ------------------------------------------------------------ | | `/start` | всем | Приветствие и меню встроенных кнопок; непривязанный аккаунт получает только свой Telegram ID | | `/help` | обоим | Меню встроенных кнопок | | `/status` | обоим | Подтверждает, что бот работает | | `/id` | всем | Показывает ваш числовой Telegram ID | | `/usage ` | обоим | Администраторы ищут клиентов; пользователи смотрят свой расход | | `/inbound `| админ | Показывает сведения о входящем подключении | | `/restart` | админ | Перезапускает Xray | Пользователь — это аккаунт Telegram, привязанный хотя бы к одному клиенту. Любой другой аккаунт может выполнять только `/start` и `/id`; остальные его команды и нажатия кнопок бот игнорирует. Чтобы привязать клиента, нажмите **Ссылка-приглашение** в карточке клиента в боте и отправьте ему ссылку `t.me`: первый открывший её аккаунт привязывается ко всем клиентам с этим ID подписки. ID подписки служит кодом приглашения, поэтому делайте его длинным и случайным. У каждого аккаунта пять попыток в час, после чего администраторы получают уведомление. Администраторам также доступны сценарии со встроенными кнопками: использование сервера, отсортированные отчёты по трафику, сброс трафика, резервные копии БД, журналы блокировок, список входящих подключений/клиентов, онлайн-клиенты, «скоро исчерпают» и полноценный мастер **добавления клиента**. Обычным пользователям доступны кнопки для своего расхода, ссылок на подписку, отдельных ссылок и QR-кодов. ## Отчёты и оповещения - **Периодический отчёт** — по расписанию `tgRunTime` (по умолчанию `@daily`) бот отправляет администраторам сведения об использовании сервера (хост, версии, время работы, нагрузка, память, онлайн-клиенты, трафик), список исчерпанных/истекающих клиентов и — если включён `tgBotBackup` — резервную копию базы данных и конфигурации Xray. Клиенты, привязанные по Telegram ID, получают собственные предупреждения об истечении срока/исчерпании квоты. - **Оповещения о событиях** — выбираются параметром `tgEnabledEvents` (по умолчанию `login.attempt,cpu.high`): | Событие | Когда | | --------------- | ------------------------------------------------------- | | `login.attempt` | Вход в панель удался или не удался (с IP и именем пользователя) | | `cpu.high` | Загрузка CPU превышает `tgCpu` процентов (по умолчанию 80) | | `memory.high` | Использование памяти превышает `tgMemory` процентов (по умолчанию 80) | | `xray.crash` | Аварийное завершение Xray-core | | `outbound.down` / `outbound.up` | Исходящее подключение упало / восстановилось | | `node.down` / `node.up` | Узел ушёл в офлайн / вернулся в строй | Время предупреждения определяется параметрами `expireDiff` (дней до истечения срока) и `trafficDiff` (ГБ оставшейся квоты); оба по умолчанию равны `0` (отключено). ## Параметры | Параметр | По умолчанию | Значение | | -------------- | -------------------------- | ---------------------------------------------- | | `tgBotEnable` | `false` | Главный переключатель вкл./выкл. | | `tgBotToken` | _(секрет)_ | Токен Bot API. | | `tgBotChatId` | _(нет)_ | **Админские** Telegram ID через запятую. | | `tgBotProxy` | _(нет)_ | Прокси `socks5://`, `http://` или `https://`. | | `tgBotAPIServer` | _(по умолчанию)_ | Пользовательский сервер Telegram Bot API. | | `tgRunTime` | `@daily` | Расписание отчётов (cron / `@daily` / `@every …`).| | `tgBotBackup` | `false` | Прикладывать резервную копию БД к периодическому отчёту. | | `tgCpu` / `tgMemory` | `80` / `80` | Пороги оповещений по CPU / памяти (в процентах). | | `tgLang` | `en-US` | Язык бота. | | `tgEnabledEvents` | `login.attempt,cpu.high`| Какие события доставлять. | Токен бота управляет вашим ботом — храните его в секрете и добавляйте только **доверенные** админские chat ID. Оповещения о входе никогда не содержат паролей. Уведомления по электронной почте (SMTP) дублируют те же события (`smtpEnabledEvents`), если вы предпочитаете получать оповещения на почту — настройте SMTP в настройках панели.