telegram-bot.mdx 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. ---
  2. title: Telegram-бот
  3. description: Подключите Telegram-бота к 3x-ui для выполнения команд, периодических отчётов, оповещений о событиях (вход, CPU, доступность узлов), резервных копий и самообслуживания клиентов.
  4. icon: Send
  5. ---
  6. 3x-ui умеет управлять Telegram-ботом для мониторинга, оповещений, резервного
  7. копирования и удалённого управления. Администраторы получают полный контроль;
  8. обычные пользователи (привязанные по Telegram ID) могут проверять собственный
  9. расход трафика и ссылки.
  10. <Callout type="info">
  11. Ищете новости и поддержку сообщества? Присоединяйтесь к официальному
  12. Telegram-каналу [@XrayUI](https://t.me/XrayUI). Это отдельный канал, не
  13. связанный с описанным ниже ботом, которого вы запускаете самостоятельно для
  14. управления собственной панелью.
  15. </Callout>
  16. ## Настройка
  17. <Steps>
  18. <Step>
  19. ### Создайте бота
  20. Напишите [@BotFather](https://t.me/BotFather), отправьте `/newbot` и скопируйте
  21. **токен бота**.
  22. </Step>
  23. <Step>
  24. ### Узнайте свой Telegram ID
  25. Получите свой числовой идентификатор пользователя Telegram (после подключения
  26. бот сообщит его по собственной команде `/id`). Это ваш **админский** ID.
  27. </Step>
  28. <Step>
  29. ### Настройте панель
  30. В настройках панели включите Telegram-бота и задайте **токен** и **админские
  31. chat ID** (через запятую). Сохраните, затем напишите своему боту.
  32. </Step>
  33. </Steps>
  34. Проверьте свой токен, админские ID и расписание отчётов, прежде чем вставлять их
  35. в панель:
  36. <TelegramSetupHelper />
  37. ## Команды
  38. Эти команды отображаются в меню команд Telegram: `/start`, `/help`, `/status`, `/id`.
  39. Дополнительные команды:
  40. | Команда | Кому | Действие |
  41. | ------------------ | ------ | ------------------------------------------------------------ |
  42. | `/start` | всем | Приветствие и меню встроенных кнопок; непривязанный аккаунт получает только свой Telegram ID |
  43. | `/help` | обоим | Меню встроенных кнопок |
  44. | `/status` | обоим | Подтверждает, что бот работает |
  45. | `/id` | всем | Показывает ваш числовой Telegram ID |
  46. | `/usage <arg>` | обоим | Администраторы ищут клиентов; пользователи смотрят свой расход |
  47. | `/inbound <remark>`| админ | Показывает сведения о входящем подключении |
  48. | `/restart` | админ | Перезапускает Xray |
  49. Пользователь — это аккаунт Telegram, привязанный хотя бы к одному клиенту. Любой
  50. другой аккаунт может выполнять только `/start` и `/id`; остальные его команды и
  51. нажатия кнопок бот игнорирует. Чтобы привязать клиента, нажмите
  52. **Ссылка-приглашение** в карточке клиента в боте и отправьте ему ссылку `t.me`: первый
  53. открывший её аккаунт привязывается ко всем клиентам с этим ID подписки. ID
  54. подписки служит кодом приглашения, поэтому делайте его длинным и случайным.
  55. У каждого аккаунта пять попыток в час, после чего администраторы получают
  56. уведомление.
  57. Администраторам также доступны сценарии со встроенными кнопками: использование
  58. сервера, отсортированные отчёты по трафику, сброс трафика, резервные копии БД,
  59. журналы блокировок, список входящих подключений/клиентов, онлайн-клиенты,
  60. «скоро исчерпают» и полноценный мастер **добавления клиента**. Обычным
  61. пользователям доступны кнопки для своего расхода, ссылок на подписку, отдельных
  62. ссылок и QR-кодов.
  63. ## Отчёты и оповещения
  64. - **Периодический отчёт** — по расписанию `tgRunTime` (по умолчанию `@daily`) бот
  65. отправляет администраторам сведения об использовании сервера (хост, версии,
  66. время работы, нагрузка, память, онлайн-клиенты, трафик), список
  67. исчерпанных/истекающих клиентов и — если включён `tgBotBackup` — резервную
  68. копию базы данных и конфигурации Xray. Клиенты, привязанные по Telegram ID,
  69. получают собственные предупреждения об истечении срока/исчерпании квоты.
  70. - **Оповещения о событиях** — выбираются параметром `tgEnabledEvents` (по умолчанию `login.attempt,cpu.high`):
  71. | Событие | Когда |
  72. | --------------- | ------------------------------------------------------- |
  73. | `login.attempt` | Вход в панель удался или не удался (с IP и именем пользователя) |
  74. | `cpu.high` | Загрузка CPU превышает `tgCpu` процентов (по умолчанию 80) |
  75. | `memory.high` | Использование памяти превышает `tgMemory` процентов (по умолчанию 80) |
  76. | `xray.crash` | Аварийное завершение Xray-core |
  77. | `outbound.down` / `outbound.up` | Исходящее подключение упало / восстановилось |
  78. | `node.down` / `node.up` | Узел ушёл в офлайн / вернулся в строй |
  79. Время предупреждения определяется параметрами `expireDiff` (дней до истечения
  80. срока) и `trafficDiff` (ГБ оставшейся квоты); оба по умолчанию равны `0`
  81. (отключено).
  82. ## Параметры
  83. | Параметр | По умолчанию | Значение |
  84. | -------------- | -------------------------- | ---------------------------------------------- |
  85. | `tgBotEnable` | `false` | Главный переключатель вкл./выкл. |
  86. | `tgBotToken` | _(секрет)_ | Токен Bot API. |
  87. | `tgBotChatId` | _(нет)_ | **Админские** Telegram ID через запятую. |
  88. | `tgBotProxy` | _(нет)_ | Прокси `socks5://`, `http://` или `https://`. |
  89. | `tgBotAPIServer` | _(по умолчанию)_ | Пользовательский сервер Telegram Bot API. |
  90. | `tgRunTime` | `@daily` | Расписание отчётов (cron / `@daily` / `@every …`).|
  91. | `tgBotBackup` | `false` | Прикладывать резервную копию БД к периодическому отчёту. |
  92. | `tgCpu` / `tgMemory` | `80` / `80` | Пороги оповещений по CPU / памяти (в процентах). |
  93. | `tgLang` | `en-US` | Язык бота. |
  94. | `tgEnabledEvents` | `login.attempt,cpu.high`| Какие события доставлять. |
  95. <Callout type="warn">
  96. Токен бота управляет вашим ботом — храните его в секрете и добавляйте только
  97. **доверенные** админские chat ID. Оповещения о входе никогда не содержат
  98. паролей.
  99. </Callout>
  100. <Callout type="info">
  101. Уведомления по электронной почте (SMTP) дублируют те же события
  102. (`smtpEnabledEvents`), если вы предпочитаете получать оповещения на почту —
  103. настройте SMTP в настройках панели.
  104. </Callout>