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).
18 KiB
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️⃣ Ошибка, не связанная с библиотеками
Если ошибка другого типа — пришлите ее вывод, чтобы я мог помочь ее диагностировать.
Резюме
- Запустите диагностическую команду.
- Проверьте, нет ли каких-либо ошибок.
- При необходимости установите отсутствующие библиотеки.
- Сообщайте о любых других ошибках для дальнейшего анализа.
❌ 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:
- Из панели администратора: Инструменты → Управление IP-адресами → удалить из списка заблокированных.
- Из CLI:
sudo /home/xc_vm/console.php tools flush— удаляет все заблокированные IP-адреса. - Если полностью заблокирован: Используйте
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):
- Сбросьте привязку на панели: откройте это устройство MAG в admin и очистите сохраненный серийный номер /
device_id(или удалите и повторно добавьте устройство). После этого условие "серийный номер уже записан" больше не срабатывает, и при следующем подключении будут привязаны новые значения. - Разблокируйте 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>.
- CLI (clear all blocks):
⚠️ Настройка
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
База данных и конфигурация
❌ "Не удалось подключиться к базе данных" при запуске
Самая распространенная проблема. Причины:
- Неверные учетные данные в
config.ini— проверитьhost,port,db_user,db_pass,db_name - MySQL/MariaDB не запущен —
sudo systemctl status mariadb - Сеть недоступна — Сервер базы данных на другом хосте и порту защищен брандмауэром
- Пользователю не хватает привилегий — повторное предоставление с помощью
console.php tools mysql
Чинить: Отредактируйте /home/xc_vm/config/config.ini, затем запустите:
sudo /home/xc_vm/console.php status
❌ Во время обновления произошел сбой переноса базы данных
Перенос .sql файлов из migrations/ выполняется автоматически во время обновления. В случае сбоя одного из них:
- Перенос зарегистрирован со статусом
[WARN]— он не будет повторен автоматически. - Распространенные причины: синтаксическая ошибка, таблица уже существует, конфликт внешних ключей, отсутствует привилегия ALTER.
Debug:
- Проверьте, какая миграция завершилась неудачно, в выходных данных консоли.
- Откройте файл в
migrations/и проверьте SQL-код. - Устраните проблему вручную в 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 экземпляра:
- nginx (
bin/nginx/) — HTTP(ы) трафик - 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 и обрабатывают сигналы. При сбое синхронизации:
- Сеть: LB не может связаться с HTTP—портом MAIN - проверьте правила брандмауэра
- База данных: LB не удается подключиться к MySQL — повторно предоставить привилегии MAIN:
sudo /home/xc_vm/console.php tools mysql - Перерыв: Если
last_check_agoпревышает 180 секунд, сервер помечается как отключенный
Отлаживать: Запустите на главной, чтобы проверить подключение:
sudo -u xc_vm /home/xc_vm/console.php watchdog
📘 Эта страница обновляется с течением времени. Если вы обнаружите новую распространенную проблему, пожалуйста, сообщите об этом в разделе Проблемы.