ТВ шара: настройка CCcam и OScam сервера в 2026
Если вы уже слышали про тв шара, но до сих пор не понимаете, почему одни конфиги работают, а другие дают фризы каждые 30 секунд — эта статья для вас. Здесь не будет рекламы сервисов, только реальная техника: пути файлов, синтаксис строк, интерпретация логов. Всё, что нужно, чтобы поднять рабочего клиента или собственный сервер на Enigma2 или обычном Linux-боксе.
Что такое ТВ шара и как она работает технически
Card sharing — это не магия и не «взлом» в бытовом смысле. Это протокольное решение, при котором одна физическая смарт-карта обслуживает несколько ресиверов по сети. Ресивер сам расшифровать сигнал не может — для этого ему нужен Control Word. Именно за ним он и обращается к серверу.
Принцип card sharing: ECM, CW и DCW
Каждые несколько секунд DVB-поток меняет ключи шифрования. Ресивер получает зашифрованный пакет ECM (Entitlement Control Message) и отправляет его на сервер шары. Сервер передаёт ECM физической смарт-карте, та расшифровывает и возвращает Control Word (CW) — 8-байтовый ключ. Ресивер применяет CW и показывает картинку.
DCW (Decrypted Control Word) — это и есть тот самый расшифрованный ключ. Цикл: ECM уходит → CW приходит → канал идёт. Всё это должно укладываться примерно в 200–400 мс. Больше — фризы.
Роль сервера, клиента и смарт-карты
Сервер — машина с физической картой и демоном (CCcam или OScam). Клиент — ваш ресивер или STB, который подключается к серверу по одному из протоколов. Смарт-карта живёт на сервере и не перемещается никуда — она только расшифровывает ECM-запросы, которые к ней приходят.
Бывает схема реселла: ваш сервер сам является клиентом другого сервера. Это hop 2 и выше, задержка растёт с каждым звеном. Но об этом позже.
Протоколы newcamd, CCcam и CS378x — отличия
CCcam — проприетарный протокол, разработанный для одноимённого демона. Работает по TCP, стандартный порт 12000 (диапазон 12000–12100). Между серверами CCcam может пересылать шары, что и породило реселл-экосистему.
Newcamd — более старый протокол, порт по умолчанию 15000. Используется в OScam для подключения к некоторым серверам и между OScam-нодами. Поддерживает шифрование на уровне протокола.
CS378x (cardsharing 378x) — ещё один протокол, поддерживаемый OScam, чаще встречается в специфических конфигурациях. Если вы только настраиваете первый сервер — начинайте с CCcam-протокола в OScam, это самый распространённый вариант.
Настройка CCcam: конфиги, пути и строка подключения
CCcam — демон с минималистичной конфигурацией. Один файл, несколько строк — и всё работает. Или не работает, если напутать с синтаксисом. Файл читается построчно, комментарии начинаются с #.
Файл CCcam.cfg и его расположение (/etc/, /var/etc/, /usr/keys/)
Путь зависит от образа Enigma2. На OpenATV и OpenPLi чаще всего это /usr/keys/CCcam.cfg. На старых образах Gemini — /var/keys/CCcam.cfg. На некоторых сборках файл ищется в /etc/CCcam.cfg. Если не уверены — проверьте скрипт запуска демона:
grep -r CCcam /etc/init.d/
Там будет явно указан путь к конфигу через флаг -C.
Строка C-line: формат C: host port user pass
Строка подключения клиента выглядит так:
C: my.server.net 12000 username password no { 0:0:1 }
Поля по порядку: хост, порт, логин, пароль. Параметр no — запрет resharing на этой линии (рекомендую всегда ставить). В фигурных скобках — CAID:ident:maxhops. 0:0:1 означает: принимать все CAID, все ident, максимум 1 hop. Для ограничения по конкретному CAID: например 0500:000000:1 для Viaccess.
Параметры F-line и share limits
F-line — строка для сервера, которая разрешает клиентам подключаться к вашему серверу:
F: clientname password no 1 { 0:0:0 }
Цифра после no — максимальный уровень reshare. 0 — клиент не может ничего расшарить дальше. 1 — может отдать подписчикам с hop+1. Для домашнего сервера ставьте 0.
Параметр SHARE LIMIT в глобальной секции конфига ограничивает общее число одновременных расшифровок. Без него сервер будет работать без лимита, что при слабом железе создаёт очередь запросов и фризы.
Перезапуск демона и проверка статуса
Жёсткий перезапуск CCcam:
killall -9 CCcam
CCcam -C /usr/keys/CCcam.cfg &
Веб-интерфейс CCcam доступен на порту 16001 — просто откройте http://<ip-ресивера>:16001 в браузере. Там видно: подключённые C-lines, статус (connected/disconnected), список доступных карт и entitlements. Если строка подключена, но карт нет — проблема на стороне сервера, не у вас.
Настройка OScam: oscam.server, oscam.user и reader
OScam — это совсем другой уровень. Открытый код, поддержка десятка протоколов одновременно, подробные логи, гибкие приоритеты. Сложнее в настройке, но гораздо информативнее при диагностике. Для любого сервера с несколькими клиентами или несколькими ридерами — OScam предпочтительнее.
Структура файлов: oscam.conf, oscam.server, oscam.user, oscam.services
Конфиги лежат в одном каталоге. Типичные пути:
/etc/tuxbox/config/oscam/— OpenPLi, OpenATV/var/etc/oscam/— некоторые образы на базе Opendreambox/etc/oscam/— чистый Linux без Enigma2
Файлов четыре основных: oscam.conf (глобальные настройки и webif), oscam.server (ридеры — источники карт), oscam.user (аккаунты клиентов), oscam.services (фильтры по SID/CAID). Менять их можно прямо через веб-интерфейс — изменения применяются без перезапуска демона.
Создание reader для подключения по cccam
Блок в oscam.server для подключения к CCcam-серверу:
[reader]
label = myserver
protocol = cccam
device = my.server.net,12000
user = username
password = password
group = 1
inactivitytimeout = 30
reconnecttimeout = 15
cccversion = 2.3.0
cccmaxhops = 1
inactivitytimeout — сколько секунд ждать без активности перед разрывом. reconnecttimeout — пауза перед переподключением. cccmaxhops = 1 — принимать только карты с hop 1, игнорировать реселл-цепочки. Очень полезный параметр.
Для подключения по newcamd вместо protocol = cccam укажите protocol = newcamd и добавьте key = 0102030405060708091011121314 (14-байтовый DES-ключ, выдаётся сервером).
Настройка [account] для клиентов
В oscam.user создаётся аккаунт для каждого клиента, который будет подключаться к вашему OScam-серверу:
[account]
user = clientname
pwd = clientpassword
group = 1
au = 1
monlevel = 0
maxconn = 1
group должен совпадать с group в oscam.server — так OScam понимает, через какие ридеры обслуживать этого клиента. maxconn = 1 запрещает одновременный вход с одного аккаунта. au = 1 включает Auto-Update — авторизационные обновления карты передаются клиенту.
Включение webif и мониторинг через порт 8888
В oscam.conf секция [webif]:
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
После запуска OScam веб-интерфейс открывается на http://<ip>:8888. Там в реальном времени видно: статус каждого ридера, ECM time последних запросов, список подключённых клиентов и их активность. Это главный инструмент диагностики.
Запуск демона в фоне:
oscam -b -c /etc/tuxbox/config/oscam
Флаг -b — background mode. Логи по умолчанию пишутся в /tmp/oscam.log, путь настраивается в oscam.conf секция [global], параметр logfile.
Диагностика проблем: фризы, Freeze ECM и нет звука/картинки
Фризы — самая частая жалоба. И в 80% случаев проблема не в конфиге, а в сети или на стороне сервера. Но сначала нужно это установить по логам, а не гадать.
Анализ лога OScam: статусы found, not found, timeout
Включите подробный лог в oscam.conf:
[global]
logfile = /tmp/oscam.log
clientloglevel = 255
userloglevel = 255
Типичная строка успешного ECM-запроса:
2026/01/15 21:34:12 c (ecm) username: found (189 ms) by myserver
189 мс — отлично. Норма — до 400 мс. Дальше смотрите на статусы: found — расшифровка прошла, not found — карта не смогла расшифровать (неверный CAID или ident), timeout — сервер не ответил за отведённое время. Timeout почти всегда означает сетевую проблему или перегрузку сервера.
Высокий ECM time и причины фризов
DVB-поток меняет CW каждые 8–10 секунд. Если новый CW не приходит вовремя — ресивер показывает фриз или чёрный экран. ECM time выше 600 мс — зона риска. Выше 1000 мс — гарантированные фризы на большинстве пакетов.
Что влияет на ECM time: физическое расстояние до сервера (ping), нагрузка сервера в данный момент, число hops в цепочке, потери пакетов в сети. Проверьте ping до сервера — если выше 80–100 мс с потерями, проблема точно не в конфиге.
ping -c 100 my.server.net | tail -2
Потери даже в 1–2% при частых ECM-запросах дают заметные фризы.
Проблема hop 2+ и нестабильная цепочка
В веб-интерфейсе OScam в разделе Readers видно hop для каждой карты. Hop 1 — карта физически на этом сервере или один шаг до неё. Hop 2 и выше — реселл. Каждый промежуточный сервер добавляет задержку и точку отказа.
Если у вас в логах нормальный ping, но ECM time нестабильный (то 150 мс, то 800 мс) — скорее всего, промежуточный сервер в цепочке перегружен. В OScam помогает параметр cccmaxhops = 1 в ридере: тогда карты с hop 2+ просто игнорируются.
Конфликт пакетов и priority/ignore caid
Ситуация: часть каналов одного пакета работает, другие — нет. Чаще всего это конфликт нескольких ридеров с одинаковым CAID. OScam не знает, к которому обращаться, и теряет время на попытки.
Решение — файл oscam.dvbapi и приоритеты в нём:
P: 0500:000000
I: 0604:000000
P: — Priority, этот CAID:ident используется первым. I: — Ignore, этот CAID игнорируется полностью. Если у вас два ридера с Viaccess (0500) и Nagra (1800), а конкретный канал идёт по Nagra — OScam без подсказки может сначала попробовать Viaccess, получить timeout и только потом переключиться.
Ещё один кейс: сервер отвечает connected, карты в веб-интерфейсе CCcam на порту 16001 видны, но entitlements не приходят. Проверьте группы в OScam — если ридер в group 1, а аккаунт клиента настроен на group 2, карты до клиента просто не доходят. Это чисто конфигурационная ошибка, не сетевая.
Как выбрать сервер шары: технические критерии
Большинство обзоров в сети — скрытая реклама. Здесь — только параметры, которые реально влияют на качество. Никаких названий сервисов.
Аптайм и стабильность ECM time
Нормальный сервер тв шара обеспечивает ECM time в районе 100–250 мс стабильно, включая вечерние часы пик. Если в тестовый период ECM time скачет от 150 до 900 мс — это не конфигурационная проблема, сервер просто перегружен.
Попросите статистику или тестируйте сами в разное время: 20:00–23:00 в будни — самая показательная нагрузка. Аптайм ниже 98% за месяц — повод искать другой вариант.
Локальные карты vs реселл-цепочки
Локальная карта на сервере — hop 1, минимальная задержка, нет зависимости от третьих сторон. Реселл — чужая карта через посредника. Hop 2 добавляет 50–150 мс к каждому ECM. Hop 3 и выше — это уже лотерея.
Нормальный поставщик честно указывает, local или resell. Если информации нет — смотрите на hop в OScam webif после подключения. Если везде hop 2+ — перед вами реселлер.
Поддержка нужных CAID и пакетов
Основные системы условного доступа: Viaccess (0500), Nagra (1800, 1801, 1830), Irdeto (0604, 0622), Conax (0B00), Cryptoworks (0D00). Перед подключением уточните, какие CAID реально поддерживаются и с каким hop.
В OScam после подключения ридера смотрите вкладку Entitlements — там видно список доступных карт с CAID, ident и expiry date. Если нужного CAID нет в списке, канал работать не будет вне зависимости от качества соединения.
Тестовый период и прозрачность логов
Любой нормальный сервис дает тестовую линию на 24–48 часов. Это минимум. За это время можно прогнать реальную нагрузку и посмотреть ECM time в OScam webif.
Прозрачность — ещё один маркер качества. Если поставщик может показать, какие карты локальные, какой аптайм за последний месяц, и не прячет hop — это хороший знак. Те, кто отказывается от тестового периода или даёт только 6 часов — обычно не уверены в стабильности своего сервера.
Чем отличается CCcam от OScam?
CCcam — проприетарный демон с простым конфигом и минимальным логированием. Хорошо работает как клиент, но беден инструментами диагностики. OScam — открытый проект, поддерживает CCcam, newcamd, CS378x и другие протоколы одновременно. Есть веб-интерфейс на порту 8888 с реальным ECM time и статусом каждого ридера. Для серверной части и диагностики фризов OScam однозначно лучше.
Какие порты использует ТВ шара?
CCcam-протокол — TCP 12000 (стандарт, диапазон 12000–12100). Веб-интерфейс CCcam — порт 16001. Newcamd — порт 15000. OScam webif — порт 8888. Все порты задаются в конфигах и должны быть открыты в firewall. Если ресивер за NAT-роутером — порты нужно пробросить (port forwarding) на IP ресивера.
Почему каналы фризят при рабочей шаре?
Чаще всего: высокий ECM time (выше 400–600 мс), большое число hops в цепочке, потери пакетов между клиентом и сервером, перегрузка сервера в прайм-тайм. Реже — неверные приоритеты CAID в oscam.dvbapi. Диагностика: смотрите лог OScam и ECM time в webif, проверяйте ping с потерями до сервера командой ping -c 100 host.
Где лежит файл CCcam.cfg?
Зависит от образа Enigma2. OpenATV и OpenPLi — обычно /usr/keys/CCcam.cfg. Старые образы Gemini — /var/keys/CCcam.cfg. Иногда /etc/CCcam.cfg. Точный путь можно найти в скрипте инициализации: grep -r CCcam /etc/init.d/. После любой правки файла нужен перезапуск демона командой killall -9 CCcam.
Как проверить, что C-line рабочая?
Откройте веб-интерфейс CCcam на порту 16001 — статус строки должен быть connected, в разделе entitlements должны появиться карты. В OScam — откройте webif на порту 8888, вкладка Readers: статус ридера connected и список карт с CAID. Если connected, но карт нет — проблема на стороне сервера или в настройке группы reader.
Что такое hop и почему он важен?
Hop — число пересылок от вашего ресивера до физической смарт-карты. Hop 1 означает прямой доступ: карта либо в вашем сервере, либо в одном шаге. Hop 2 и выше — реселл-цепочка. Каждый дополнительный hop добавляет задержку и точку отказа. При hop 3+ стабильный ECM time практически недостижим. В OScam можно ограничить принимаемые hops параметром cccmaxhops = 1 в блоке reader.