Files
XC_VM/docs/ru/info/faq.md
T
2026-08-21 21:56:31 +03:00

18 KiB
Raw Blame History

FAQ - Часто задаваемые вопросы

Здесь вы найдете ответы на наиболее распространенные вопросы и проблемы при работе с XC_VM.


Проблемы с потоками

❌ Мой стрим не запускается ни на MAIN, ни на LB

Диагностика

Подключитесь к консоли вашего сервера и выполните следующую команду:

sudo -u xc_vm /home/xc_vm/console.php monitor 291

🧩 Где 291 - это ваш идентификатор потока (замените его на свой собственный).


Что делает команда

Команда monitor пытается запустить поток вручную и в случае сбоя выдает сообщение об ошибке.


Возможные причины

1️⃣ Отсутствующие системные библиотеки

Если выходные данные содержат ошибку типа:

error while loading shared libraries: libxyz.so.1: cannot open shared object file

Установите отсутствующую библиотеку с помощью:

sudo apt install <library_name>

После установки запустите тест повторно.

💬 Дайте мне знать, нужно ли добавить библиотеку в сценарий установки.


2️⃣ Ошибка, не связанная с библиотеками

Если ошибка другого типа — пришлите ее вывод, чтобы я мог помочь ее диагностировать.


Резюме

  1. Запустите диагностическую команду.
  2. Проверьте, нет ли каких-либо ошибок.
  3. При необходимости установите отсутствующие библиотеки.
  4. Сообщайте о любых других ошибках для дальнейшего анализа.

❌ Streaming fails with "IP_MISMATCH" or "TOKEN_EXPIRED"

Это функции безопасности, а не баги:

  • TOKEN_EXPIRED — токен сеанса имеет ограничение по времени. Пользователю необходимо повторно пройти аутентификацию.
  • IP_MISMATCH — IP-адрес пользователя изменился в середине потока (часто определяется как общий доступ к учетным данным).

Соответствующие настройки:

  • restrict_same_ip — насколько строго соблюдается соответствие IP-адресов
  • disallow_2nd_ip_con — блокирует одновременные подключения с разных IP-адресов.

Если это вызывает проблемы у законных пользователей (например, мобильные сети часто меняют IP-адреса), измените уровень ограничений в настройках панели администратора.



Проблемы с логином и доступом

❌ Я заблокирован — IP продолжает блокироваться

XC_VM защита методом перебора блокирует IP-адреса после слишком большого числа неудачных попыток входа в систему. Это контролируется:

  • bruteforce_mac_attempts — количество попыток для каждого MAC за определенный промежуток времени
  • bruteforce_username_attempts — количество попыток для каждого пользователя в течение временного окна
  • flood_limit — общее количество запросов в окне

** Чтобы разблокировать себя:**

  1. Из панели администратора: Сервис → Управление IP-адресами → удалить из списка заблокированных.
  2. Из интерфейса командной строки: sudo /home/xc_vm/console.php tools flush — удаляет все заблокированные IP-адреса.
  3. Если вы полностью заблокированы: Используйте console.php tools rescue для создания аварийного кода доступа (см. CLI Tools).

❌ Set-top box gets blocked after a reset/firmware change (its serial or device_id changed, but the panel has the old one)

Блок, который раньше работал, начинает блокировать свой ** IP-адрес ** после ** сброса настроек, изменения/обновления прошивки, аппаратной замены ** (или перемещения MAC в другой блок): теперь он сообщает ** другой серийный номер (sn) или device_id** больше того, что сохранила панель. При get_profile сервер блокирует IP-адрес, и портал возвращает 404.

Это ** не ошибка** — это защита портала от клонирования MAGSCAN. Для этого требуется ввести серийный номер и сравнить опубликованное значение sn с сохраненным значением mag_devices.sn:

  • Нет серийного номера в запросе → запретить ([MS] No Serial Number).
  • Опубликовано sn ≠ сохранено на устройстве sn → бан ([MS] Invalid Serial Number).

В обоих случаях IP-адрес записывается в таблицу blocked_ips (а оттуда в таблицу iptables), и устройство получает код 404. Если на устройстве установлен флаг lock_device, то device_id, device_id2 и hw_version также отмечены — несоответствие не подтверждается, и устройство показывает, что "ваше устройство неактивно" (без запрета IP-адреса).

Как исправить (для легитимного ящика, данные которого действительно изменились):

  1. Сбросьте привязку на панели: откройте это устройство MAG в admin и очистите его сохраненный серийный номер / device_id (или удалите и повторно добавьте устройство). После этого условие "серийный номер уже записан" больше не срабатывает, и при следующем подключении новые значения будут привязаны.
  2. Разблокируйте IP. Самый простой способ — через веб—панель: откройте Сервис → Управление IP (/<admin-code>/ips), где перечислены заблокированные IP-адреса - удалите тот, который вам нужен (или очистите весь список). Настройки CLI / вручную, если вы не можете добраться до панели:
    • CLI (clear all blocks): sudo /home/xc_vm/console.php tools flush;
    • Вручную, для каждого IP: sudo iptables -D INPUT -s <IP> -j DROP && sudo rm -f /home/xc_vm/tmp/flood/block_<IP>.

⚠️ Установка enable_debug_stalker позволяет обойти проверку lock_device / изображений, но не последовательный жесткий запрет MAGSCAN (который выполняется ранее) - вам все равно придется очистить сохраненные sn на панели.


❌ Забыли пароль администратора / вообще не можете войти в систему

Создайте нового пользователя rescue admin с помощью CLI:

sudo /home/xc_vm/console.php tools user

В результате будут введены случайные имя пользователя и пароль с полными правами администратора. Войдите в систему, измените пароль и по завершении удалите пользователя rescue.

Если сам URL-адрес панели администратора неизвестен, создайте аварийный код доступа:

sudo /home/xc_vm/console.php tools rescue


База данных и конфигурация

❌ "Не удалось подключиться к базе данных" при запуске

Самая распространенная проблема. Причины:

  1. Неверные учетные данные в config.ini — проверка host, port, db_user, db_pass, db_name
  2. MySQL/MariaDB не запущен — sudo systemctl status mariadb
  3. Сеть недоступна — сервер базы данных на другом хосте и порту защищен брандмауэром.
  4. Пользователю не хватает привилегий — повторно предоставить их с помощью console.php tools mysql

Исправлено: Отредактируйте /home/xc_vm/config/config.ini, затем запустите:

sudo /home/xc_vm/console.php status

❌ Во время обновления произошел сбой переноса базы данных

Перенос .sql файлов из migrations/ выполняется автоматически во время обновления. В случае сбоя одного из них:

  • Перенос зарегистрирован со статусом [WARN] — он не будет повторен автоматически.
  • Распространенные причины: синтаксическая ошибка, таблица уже существует, конфликт внешних ключей, отсутствует привилегия ALTER.

Отладка:

  1. Проверьте, какая миграция завершилась неудачно, в выходных данных консоли.
  2. Откройте файл в migrations/ и проверьте SQL-код.
  3. Устраните проблему вручную в MySQL, после чего следующее обновление продолжится с того места, где оно было остановлено.

Дополнительные сведения см. в разделе Миграция базы данных.



SSL и Nginx

❌ Сбой генерации SSL-сертификата

console.php certbot может произойти сбой с разными кодами ошибок:

Ошибка Причина Чинить
Ошибка 3 Домен - это простой IP-адрес Для Certbot требуется доменное имя, а не IP-адрес
Ошибка 4 Не удалось выполнить пробный запуск — используется порт 80/443 Stop conflicting service: sudo lsof -i :80
Ошибка 0 Файлы, не найденные после генерации Проверить /home/xc_vm/bin/certbot/logs/xc_vm.log
Ошибка 2 Неожиданная ошибка certbot Проверьте журналы, убедитесь, что DNS разрешает доступ к вашему серверу

** Также:** Удалите устаревшие файлы блокировки, если certbot был прерван:

sudo rm -f /home/xc_vm/bin/certbot/*/.certbot.lock

❌ Nginx won't reload — port conflicts

XC_VM запускает два nginx экземпляра:

  1. nginx (bin/nginx/) — HTTP(ы) трафик
  2. nginx_rtmp (bin/nginx_rtmp/) — RTMP потоковая передача

Каждый из них может выйти из строя, если его порт уже используется.

Диагностировать:

sudo netstat -tlnp | grep -E ':80|:443|:1935'

** Исправлено:** Измените широковещательный порт в настройках панели администратора, затем заново создайте настройки:

sudo /home/xc_vm/console.php tools ports


Обновления и обслуживание

❌ Ошибка загрузки обновления или несоответствие контрольной суммы

Система обновлений загружается с GitHub releases. Если это не удается:

  • **Сеть/брандмауэр ** блокирует доступ к GitHub
  • Частичная загрузка — соединение прервано на полпути
  • Несоответствие MD5 — поврежденный файл (обновление благополучно прервано)

Обновления никогда не применяются, если контрольная сумма не совпадает. Повторно запустите обновление после устранения проблем с сетью:

sudo -u xc_vm /home/xc_vm/console.php update update

❌ Обслуживание неожиданно прекращается или не завершается полностью

Сервисная команда использует нарастающие сигналы об остановке. Если процессы зависают:

# Check for stuck processes
ps -u xc_vm

# Force kill if necessary
sudo killall -9 -u xc_vm

# Restart cleanly
sudo /home/xc_vm/console.php service start

Common causes: PHP transaction deadlock, infinite loop in stream processing, or network socket timeout waiting for a response.



Разрешения и система

❌ Ошибки, связанные с отказом в разрешении, продолжают появляться

Запустите команду status — она автоматически устранит все известные проблемы с правами доступа:

sudo /home/xc_vm/console.php status

Что это исправляет:

  • PHP-FPM права доступа к сокету (bin/php/sockets/*)
  • Владелец каталога содержимого (content/streams/)
  • Владение конфигурационным файлом (config/)
  • Исполняемый бит на daemons.sh
  • Права доступа к сетевому интерфейсу (/sys/class/net)

Если после каждой перезагрузки разрешения нарушаются, проверьте, существует ли системный пользователь xc_vm, которому принадлежит /home/xc_vm.


❌ Балансировщик нагрузки отображается как автономный / не удается синхронизировать с основным

Серверы LB опрашивают MAIN по протоколу HTTP и обрабатывают сигналы. При сбое синхронизации:

  1. Сеть: LB не может подключиться к HTTP—порту MAIN - проверьте правила брандмауэра
  2. База данных: LB не может подключиться к MAIN'у MySQL — повторно предоставьте привилегии:
    sudo /home/xc_vm/console.php tools mysql
    
  3. Тайм-аут: Если last_check_ago превышает 180 секунд, сервер помечается как отключенный

Отладка: Запустите на главном экране, чтобы проверить подключение:

sudo -u xc_vm /home/xc_vm/console.php watchdog


📘 Эта страница обновляется с течением времени. Если вы обнаружите новую распространенную проблему, пожалуйста, сообщите об этом в разделе Проблемы.