2026-08-20 22:37:44 +03:00
# FAQ - Часто задаваемые вопросы
Здесь вы найдете ответы на наиболее распространенные вопросы и проблемы при работе с XC_VM.
---
## Проблемы с потоками
<details>
2026-08-27 18:07:43 +03:00
<summary><b>❌ Мой стрим не запускается на MAIN или LB</b></summary>
2026-08-20 22:37:44 +03:00
---
### Диагностика
Подключитесь к консоли вашего сервера и выполните следующую команду:
```bash
sudo -u xc_vm /home/xc_vm/console.php monitor 291
````
2026-08-21 16:31:01 +03:00
> 🧩 Где ` 291` - это ваш **идентификатор потока** ( замените его на свой собственный) .
2026-08-20 22:37:44 +03:00
---
### Что делает команда
2026-08-27 18:07:43 +03:00
Команда **монитор** пытается запустить поток вручную и в случае сбоя выдает сообщение об ошибке.
2026-08-20 22:37:44 +03:00
---
### Возможные причины
#### 1️⃣ Отсутствующие системные библиотеки
Если выходные данные содержат ошибку типа:
```
error while loading shared libraries: libxyz.so.1: cannot open shared object file
```
Установите отсутствующую библиотеку с помощью:
```bash
sudo apt install <library_name>
```
После установки запустите тест повторно.
> 💬 Дайте мне знать, нужно ли добавить библиотеку в сценарий установки.
---
#### 2️⃣ Ошибка, не связанная с библиотеками
Если ошибка другого типа — пришлите ее вывод, чтобы я мог помочь ее диагностировать.
---
### Резюме
1. Запустите диагностическую команду.
2. Проверьте, нет ли каких-либо ошибок.
3. При необходимости установите отсутствующие библиотеки.
4. Сообщайте о любых других ошибках для дальнейшего анализа.
---
</details>
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Streaming fails with "IP_MISMATCH" or "TOKEN_EXPIRED"</b></summary>
2026-08-20 22:37:44 +03:00
---
Это функции безопасности, а не баги:
2026-08-27 18:07:43 +03:00
- **ТОКЕН_ИСПОЛЬЗОВАН** — токен сеанса имеет ограничение по времени. Пользователю необходимо повторно пройти аутентификацию.
- **IP_MISMATCH СОВПАДЕНИЕ IP_MISMATCH** — IP-адрес пользователя изменился в середине потока (часто определяется как общий доступ к учетным данным).
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
**Relevant settings:**
2026-08-20 22:37:44 +03:00
- `restrict_same_ip` — насколько строго соблюдается соответствие IP-адресов
2026-08-21 16:31:01 +03:00
- `disallow_2nd_ip_con` — блокирует одновременные подключения с разных IP-адресов.
2026-08-20 22:37:44 +03:00
Если это вызывает проблемы у законных пользователей (например, мобильные сети часто меняют IP-адреса), измените уровень ограничений в настройках панели администратора.
---
</details>
---
## Проблемы с логином и доступом
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Я заблокирован — IP продолжает блокироваться</b></summary>
2026-08-20 22:37:44 +03:00
---
2026-08-21 16:31:01 +03:00
XC_VM защита методом перебора блокирует IP-адреса после слишком большого числа неудачных попыток входа в систему. Это контролируется:
2026-08-20 22:37:44 +03:00
- `bruteforce_mac_attempts` — количество попыток для каждого MAC за определенный промежуток времени
2026-08-27 18:07:43 +03:00
- `bruteforce_username_attempts` — количество попыток для каждого имени пользователя за определенный промежуток времени
2026-08-20 22:37:44 +03:00
- `flood_limit` — общее количество запросов в окне
2026-08-27 18:07:43 +03:00
**To unblock yourself:**
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
1. **Из панели администратора:** Инструменты → Управление IP-адресами → удалить из списка заблокированных.
2. **Из CLI:** `sudo /home/xc_vm/console.php tools flush` — удаляет все заблокированные IP-адреса.
3. **Если полностью заблокирован:** Используйте `console.php tools rescue` для создания аварийного кода доступа (см. [CLI Tools ](../guides/cli-tools.md )).
2026-08-20 22:37:44 +03:00
---
</details>
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Set-top box gets blocked after a reset/firmware change (its serial or device_id changed, but the panel has the old one)</b></summary>
2026-08-20 22:37:44 +03:00
---
2026-08-27 18:07:43 +03:00
Окно, которое раньше работало, начинает получать значение **Заблокированный IP-адрес** после **сброс настроек, изменение/обновление встроенного ПО, замена оборудования** (или при перемещении MAC в другое поле): теперь оно сообщает значение **другой серийный номер (`sn`) или `device_id`** , отличное от того, которое сохранила панель. На `get_profile` сервер блокирует IP, и портал возвращает 404.
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
Это **это не ошибка** — защита портала от клонирования, **MAGSCAN** . Для этого требуется ввести серийный номер и сравнить опубликованные `sn` данные с сохраненными `mag_devices.sn` :
2026-08-20 22:37:44 +03:00
- **Нет серийного номера** в запросе → запретить (`[MS] No Serial Number` ).
2026-08-27 18:07:43 +03:00
- **Опубликовано `sn` ≠ сохранено на устройстве `sn` ** → запретить (`[MS] Invalid Serial Number` ).
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
В обоих случаях IP-адрес записывается в таблицу `blocked_ips` (а оттуда в таблицу iptables), и устройство получает код 404. Если на устройстве установлен флаг ** `lock_device` **, то `device_id` , `device_id2` и `hw_version` также проверяются — несоответствие не подтверждается, и устройство показывает, что "ваше устройство неактивно" (без запрета IP-адреса).
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
**How to fix (for a legitimate box whose data genuinely changed):**
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
1. **Сбросьте привязку на панели:** откройте это устройство MAG в admin и **очистите сохраненный серийный номер / `device_id`** (или удалите и повторно добавьте устройство). После этого условие "серийный номер уже записан" больше не срабатывает, и при следующем подключении будут привязаны новые значения.
2. **Разблокируйте IP-адрес.** Самый простой способ — **через веб-панель** : откройте **Инструменты → Управление интеллектуальной собственностью** (`/<admin-code>/ips` ), в котором перечислены заблокированные IP—адреса - удалите тот, который вам нужен (или очистите весь список). CLI / ручные настройки, если вы не можете добраться до панели:
2026-08-21 16:31:01 +03:00
- 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>` .
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
> ⚠️ Настройка `enable_debug_stalker` обходит проверку `lock_device` / изображений, но **НЕ** - последовательный жесткий запрет MAGSCAN (который выполняется ранее) — вам все равно придется очистить сохраненные `sn` в панели.
2026-08-20 22:37:44 +03:00
---
</details>
<details>
<summary><b>❌ Забыли пароль администратора / вообще не можете войти в систему</b></summary>
---
Создайте нового пользователя rescue admin с помощью CLI:
```bash
sudo /home/xc_vm/console.php tools user
```
В результате будут введены случайные имя пользователя и пароль с полными правами администратора. Войдите в систему, измените пароль и по завершении удалите пользователя rescue.
Если сам URL-адрес панели администратора неизвестен, создайте аварийный код доступа:
```bash
sudo /home/xc_vm/console.php tools rescue
```
---
</details>
---
## База данных и конфигурация
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ "Не удалось подключиться к базе данных" при запуске</b></summary>
2026-08-20 22:37:44 +03:00
---
Самая распространенная проблема. Причины:
2026-08-27 18:07:43 +03:00
1. **Неверные учетные данные в `config.ini`** — проверить `host` , `port` , `db_user` , `db_pass` , `db_name`
2026-08-21 16:31:01 +03:00
2. **MySQL/MariaDB не запущен** — `sudo systemctl status mariadb`
2026-08-27 18:07:43 +03:00
3. **Сеть недоступна** — Сервер базы данных на другом хосте и порту защищен брандмауэром
4. **Пользователю не хватает привилегий** — повторное предоставление с помощью `console.php tools mysql`
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
**Чинить:** Отредактируйте `/home/xc_vm/config/config.ini` , затем запустите:
2026-08-20 22:37:44 +03:00
```bash
sudo /home/xc_vm/console.php status
```
---
</details>
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Во время обновления произошел сбой переноса базы данных</b></summary>
2026-08-20 22:37:44 +03:00
---
Перенос `.sql` файлов из `migrations/` выполняется автоматически во время обновления. В случае сбоя одного из них:
2026-08-21 16:31:01 +03:00
- Перенос зарегистрирован со статусом `[WARN]` — он не будет повторен автоматически.
2026-08-20 22:37:44 +03:00
- Распространенные причины: синтаксическая ошибка, таблица уже существует, конфликт внешних ключей, отсутствует привилегия ALTER.
2026-08-27 18:07:43 +03:00
**Debug:**
2026-08-20 22:37:44 +03:00
1. Проверьте, какая миграция завершилась неудачно, в выходных данных консоли.
2026-08-21 16:31:01 +03:00
2. Откройте файл в `migrations/` и проверьте SQL-код.
2026-08-20 22:37:44 +03:00
3. Устраните проблему вручную в MySQL, после чего следующее обновление продолжится с того места, где оно было остановлено.
2026-08-27 18:07:43 +03:00
Дополнительные сведения см. в разделе [Миграция базы данных ](../guides/database-migrations.md ).
2026-08-20 22:37:44 +03:00
---
</details>
---
## SSL и Nginx
<details>
2026-08-21 21:56:31 +03:00
<summary><b>❌ Сбой генерации SSL-сертификата</b></summary>
2026-08-20 22:37:44 +03:00
---
2026-08-21 16:31:01 +03:00
`console.php certbot` может произойти сбой с разными кодами ошибок:
2026-08-20 22:37:44 +03:00
|Ошибка|Причина|Чинить|
|---|---|---|
|Ошибка 3|Домен - это простой IP-адрес|Для Certbot требуется доменное имя, а не IP-адрес|
2026-08-21 16:31:01 +03:00
|Ошибка 4|Не удалось выполнить пробный запуск — используется порт 80/443| Stop conflicting service: `sudo lsof -i :80` |
2026-08-20 22:37:44 +03:00
|Ошибка 0|Файлы, не найденные после генерации|Проверить `/home/xc_vm/bin/certbot/logs/xc_vm.log` |
|Ошибка 2|Неожиданная ошибка certbot|Проверьте журналы, убедитесь, что DNS разрешает доступ к вашему серверу|
2026-08-27 18:07:43 +03:00
**Также:** Удаление устаревших файлов блокировки, если certbot был прерван:
2026-08-20 22:37:44 +03:00
```bash
sudo rm -f /home/xc_vm/bin/certbot/*/.certbot.lock
```
---
</details>
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Nginx won't reload — port conflicts</b></summary>
2026-08-20 22:37:44 +03:00
---
XC_VM запускает **два** nginx экземпляра:
1. **nginx** (`bin/nginx/` ) — HTTP(ы) трафик
2026-08-27 18:07:43 +03:00
2. **nginx_rtmp** (`bin/nginx_rtmp/` ) — RTMP потоковое вещание
2026-08-20 22:37:44 +03:00
Каждый из них может выйти из строя, если его порт уже используется.
2026-08-27 18:07:43 +03:00
**Diagnose:**
2026-08-20 22:37:44 +03:00
```bash
sudo netstat -tlnp | grep -E ':80|:443|:1935'
```
2026-08-27 18:07:43 +03:00
**Чинить:** Измените широковещательный порт в настройках панели администратора, затем заново создайте настройки:
2026-08-20 22:37:44 +03:00
```bash
sudo /home/xc_vm/console.php tools ports
```
---
</details>
---
## Обновления и обслуживание
<details>
<summary><b>❌ Ошибка загрузки обновления или несоответствие контрольной суммы</b></summary>
---
Система обновлений загружается с GitHub releases. Если это не удается:
2026-08-27 18:07:43 +03:00
- **Сеть/брандмауэр** блокирует доступ к GitHub
2026-08-20 22:37:44 +03:00
- **Частичная загрузка** — соединение прервано на полпути
- **Несоответствие MD5** — поврежденный файл (обновление благополучно прервано)
Обновления никогда не применяются, если контрольная сумма не совпадает. Повторно запустите обновление после устранения проблем с сетью:
```bash
sudo -u xc_vm /home/xc_vm/console.php update update
```
---
</details>
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Обслуживание неожиданно прекращается или не завершается полностью</b></summary>
2026-08-20 22:37:44 +03:00
---
Сервисная команда использует нарастающие сигналы об остановке. Если процессы зависают:
```bash
# 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
```
2026-08-21 16:31:01 +03:00
Common causes: PHP transaction deadlock, infinite loop in stream processing, or network socket timeout waiting for a response.
2026-08-20 22:37:44 +03:00
---
</details>
---
## Разрешения и система
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Ошибки, связанные с отказом в разрешении, продолжают появляться</b></summary>
2026-08-20 22:37:44 +03:00
---
Запустите команду status — она автоматически устранит все известные проблемы с правами доступа:
```bash
sudo /home/xc_vm/console.php status
```
Что это исправляет:
2026-08-21 16:31:01 +03:00
- PHP-FPM права доступа к сокету (`bin/php/sockets/*` )
2026-08-20 22:37:44 +03:00
- Владелец каталога содержимого (`content/streams/` )
- Владение конфигурационным файлом (`config/` )
- Исполняемый бит на `daemons.sh`
- Права доступа к сетевому интерфейсу (`/sys/class/net` )
Если после каждой перезагрузки разрешения нарушаются, проверьте, существует ли системный пользователь `xc_vm` , которому принадлежит `/home/xc_vm` .
---
</details>
<details>
2026-08-21 16:31:01 +03:00
<summary><b>❌ Балансировщик нагрузки отображается как автономный / не удается синхронизировать с основным</b></summary>
2026-08-20 22:37:44 +03:00
---
Серверы LB опрашивают MAIN по протоколу HTTP и обрабатывают сигналы. При сбое синхронизации:
2026-08-27 18:07:43 +03:00
1. **Сеть:** LB не может связаться с HTTP—портом MAIN - проверьте правила брандмауэра
2. **База данных:** LB не удается подключиться к MySQL — повторно предоставить привилегии MAIN:
2026-08-20 22:37:44 +03:00
```bash
sudo /home/xc_vm/console.php tools mysql
` ``
2026-08-27 18:07:43 +03:00
3. **Перерыв:** Если ` last_check_ago` превышает 180 секунд, сервер помечается как отключенный
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
**Отлаживать:** Запустите на главной, чтобы проверить подключение:
2026-08-20 22:37:44 +03:00
` ``bash
sudo -u xc_vm /home/xc_vm/console.php watchdog
` ``
---
</details>
---
📘 *Эта страница обновляется с течением времени. Если вы обнаружите новую распространенную проблему, пожалуйста, сообщите об этом в разделе [Проблемы](https://github.com/Vateron-Media/XC_VM/issues).*
---