12 KiB
❓ FAQ - Часто задаваемые вопросы
Здесь собраны ответы на наиболее частые вопросы и проблемы при работе с XC_VM.
⚙️ Проблемы со стримами
❌ У меня не запускается стрим на MAIN или LB
🔍 Диагностика
Подключитесь к консоли сервера и выполните команду:
sudo -u xc_vm /home/xc_vm/console.php monitor 291
🧩 Где
291— это ID вашего стрима (замените на свой).
📄 Что делает команда
Команда monitor попытается запустить стрим вручную и покажет ошибку, если не сможет.
⚠️ Возможные причины
1️⃣ Отсутствуют системные библиотеки
Если вывод содержит ошибку вида:
error while loading shared libraries: libxyz.so.1: cannot open shared object file
Установите недостающую библиотеку командой:
sudo apt install <имя_библиотеки>
После установки повторите тест.
💬 Сообщите мне, если потребуется добавить библиотеку в установку.
2️⃣ Ошибка не связана с библиотеками
Если ошибка иного типа — также пришлите её вывод, чтобы я помог с диагностикой.
🧾 Резюме
- Выполните команду диагностики.
- Проверьте наличие ошибок.
- Установите недостающие библиотеки.
- Сообщите о любых других ошибках для анализа.
❌ Стриминг обрывается с ошибкой «IP_MISMATCH» или «TOKEN_EXPIRED»
Это функции безопасности, а не баги:
- TOKEN_EXPIRED — сессионный токен истёк. Пользователю нужно переподключиться.
- IP_MISMATCH — IP пользователя сменился во время стрима (часто расценивается как шаринг аккаунта).
Связанные настройки:
restrict_same_ip— строгость проверки IPdisallow_2nd_ip_con— блокировка одновременных подключений с разных IP
Если это создаёт проблемы для легитимных пользователей (например, мобильные сети часто меняют IP), скорректируйте уровень ограничений в настройках админ-панели.
🔐 Проблемы с входом и доступом
❌ IP заблокирован — не могу войти
Защита от brute-force блокирует IP после превышения лимита неудачных попыток входа. Управляется настройками:
bruteforce_mac_attempts— попыток по MAC за окноbruteforce_username_attempts— попыток по логину за окноflood_limit— общий лимит запросов за окно
Как разблокировать:
- Через админ-панель: Инструменты → Управление IP → удалить из списка блокировки.
- Через CLI:
sudo /home/xc_vm/console.php tools flush— сбрасывает все блокировки. - Если полностью заблокированы: Используйте
console.php tools rescueдля создания кода восстановления доступа (см. CLI-инструменты).
❌ Забыл пароль админа / не могу войти вообще
Создайте нового пользователя-администратора через CLI:
sudo /home/xc_vm/console.php tools user
Команда выведет случайный логин и пароль с полными правами. Войдите, смените пароль и удалите rescue-пользователя.
Если не знаете URL админ-панели — создайте код восстановления:
sudo /home/xc_vm/console.php tools rescue
🗄 База данных и конфигурация
❌ «Couldn't connect to database» при запуске
Самая частая проблема. Причины:
- Неверные данные в
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.
Отладка:
- Проверьте в консольном выводе, какая миграция упала.
- Откройте файл в
migrations/и изучите SQL. - Исправьте проблему вручную в MySQL — следующее обновление продолжит с места остановки.
Подробности: Миграции БД.
🌐 SSL и Nginx
❌ Генерация SSL-сертификата падает
console.php certbot может завершиться с разными кодами ошибки:
| Ошибка | Причина | Решение |
|---|---|---|
| Error 3 | Домен — голый IP-адрес | Certbot требует доменное имя, а не IP |
| Error 4 | Dry run упал — порт 80/443 занят | Остановите конфликтующий сервис: sudo lsof -i :80 |
| Error 0 | Файлы не найдены после генерации | Проверьте /home/xc_vm/bin/certbot/logs/xc_vm.log |
| Error 2 | Неожиданная ошибка certbot | Проверьте логи, убедитесь что DNS ведёт на ваш сервер |
Также: Удалите устаревшие lock-файлы, если certbot был прерван:
sudo rm -f /home/xc_vm/bin/certbot/*/.certbot.lock
❌ Nginx не перезапускается — конфликт портов
XC_VM запускает два инстанса nginx:
- nginx (
bin/nginx/) — HTTP(S)-трафик - 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
❌ Сервис неожиданно останавливается / не завершается чисто
Команда service использует эскалацию сигналов завершения. Если процессы зависли:
# Проверить зависшие процессы
ps -u xc_vm
# Принудительное завершение при необходимости
sudo killall -9 -u xc_vm
# Чистый перезапуск
sudo /home/xc_vm/console.php service start
Частые причины: deadlock в PHP-транзакции, бесконечный цикл в обработке стрима, или сетевой сокет ожидает ответ.
🛠 Права и система
❌ Ошибки «Permission denied» возвращаются снова и снова
Запустите команду 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.
❌ Load Balancer показан как offline / не синхронизируется с MAIN
LB-серверы опрашивают MAIN по HTTP и обрабатывают сигналы. Когда синхронизация ломается:
- Сеть: LB не может достучаться до HTTP-порта MAIN — проверьте правила файрвола
- База данных: LB не может подключиться к MySQL на MAIN — перевыдайте привилегии:
sudo /home/xc_vm/console.php tools mysql - Таймаут: Если
last_check_agoпревышает 180 секунд, сервер помечается как offline
Отладка: Запустите на MAIN для проверки связи:
sudo -u xc_vm /home/xc_vm/console.php watchdog
📘 Эта страница обновляется со временем. Если вы нашли новую типовую проблему — предложите её в Issues.