Files
XC_VM/docs/ru/info/faq.md
T
Divarion_D d4da90f37b fix(docs): translate bold spans atomically and auto-prune orphaned ru pages
The line-by-line web translator reordered words inside `**bold**` spans and
misplaced/dropped the markers, producing `**LB` or `****` (empty bold). Mask
each `**...**` as ONE atomic sentinel: translate the inner text on its own,
then store the whole balanced `**inner**` — the engine never sees the markers
and cannot reorder or collapse them. Also harden the anthropic prompt to keep
emphasis balanced.

Auto-prune: after translating, delete generated docs/ru files whose docs/en
source no longer exists (renamed/removed) and drop now-empty dirs, so the tree
mirrors docs/en 1:1 (removes the stale development/modules.md and
guides/geoip-and-device-detection.md).

Bump PROMPT_VERSION to 6 to invalidate the contaminated cache and regenerate
docs/ru (0 broken bold spans remaining, aside from pre-existing multi-line
bold that spans a soft line break).
2026-08-27 18:07:43 +03:00

18 KiB
Raw Blame History

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

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


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

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

Диагностика

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

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

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


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

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


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

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"

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

  • ТОКЕН_ИСПОЛЬЗОВАН — токен сеанса имеет ограничение по времени. Пользователю необходимо повторно пройти аутентификацию.
  • IP_MISMATCH СОВПАДЕНИЕ IP_MISMATCH — IP-адрес пользователя изменился в середине потока (часто определяется как общий доступ к учетным данным).

Relevant settings:

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

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



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

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

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

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

To unblock yourself:

  1. Из панели администратора: Инструменты → Управление IP-адресами → удалить из списка заблокированных.
  2. Из CLI: 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-адреса).

How to fix (for a legitimate box whose data genuinely changed):

  1. Сбросьте привязку на панели: откройте это устройство MAG в admin и очистите сохраненный серийный номер / device_id (или удалите и повторно добавьте устройство). После этого условие "серийный номер уже записан" больше не срабатывает, и при следующем подключении будут привязаны новые значения.
  2. Разблокируйте 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.

Debug:

  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 потоковое вещание

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

Diagnose:

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 не удается подключиться к MySQL — повторно предоставить привилегии MAIN:
    sudo /home/xc_vm/console.php tools mysql
    
  3. Перерыв: Если last_check_ago превышает 180 секунд, сервер помечается как отключенный

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

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


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