Shara TV biz: настройка CCcam и OScam с нуля
Если вы попали на эту страницу, значит уже знаете базовые термины и хотите конкретики — рабочие конфиги, реальные пути файлов, команды диагностики. Платформа shara tv biz ориентирована именно на технически подготовленных пользователей, и этот материал написан в том же духе. Никаких вступлений в стиле "что такое спутниковое телевидение" — сразу к делу.
Что такое Shara TV biz и как устроен кардшаринг
Кардшаринг — это протокольная схема, при которой один физический смарт-карточный ридер обслуживает несколько декодеров через сеть. Понять её архитектуру проще всего через жизненный цикл одного запроса.
Принцип работы card sharing: ECM, CW и DCW
Когда декодер принимает зашифрованный поток, он извлекает из него пакет ECM (Entitlement Control Message) — фактически зашифрованный запрос на ключ дешифрования. Этот ECM отправляется на сервер кардшаринга, где подлинная смарт-карта его расшифровывает и возвращает Control Word (CW), иногда называемый DCW (Decrypted Control Word). Декодер получает CW, расшифровывает поток и выводит картинку. Весь цикл должен укладываться в ~700 мс, иначе начнётся FREEZE.
Ключевой параметр всей схемы — latency. Чем быстрее ECM обработан и CW доставлен обратно, тем стабильнее просмотр. Именно поэтому ECM time — главный показатель качества любого сервера.
Роли сервера и клиента в схеме
Сервер — это машина (или ресивер), к которой физически подключена карта. Он слушает входящие соединения на определённом порту, принимает ECM, обращается к карте и отдаёт CW. Клиент — декодер без карты, который подключается к серверу и получает ключи. Один сервер может обслуживать несколько клиентов одновременно, что и делает схему экономически интересной.
Решара (reshare) — это когда клиент сам становится сервером для других клиентов. Каждый такой "прыжок" увеличивает hop count и добавляет латентность. Hop 1 — прямое подключение к карте, hop 2 — уже через одного посредника. На hop 3+ FREEZE практически гарантирован на платном контенте с частой сменой CW.
Чем отличаются протоколы CCcam, newcamd и CS378x
CCcam — самый распространённый протокол, порт по умолчанию 12000. Разработан специально для кардшаринга, поддерживает cascading (цепочки серверов) и механизм share-info для автоматического обнаружения доступных карт. Бинарный протокол, шифрование на основе DES.
Newcamd использует порты в диапазоне 15000+ (типично 15000–15010). Старше CCcam, менее гибкий в плане cascading, но стабильно работает со многими старыми прошивками ресиверов. Использует Triple DES (3DES) и требует указания DES key в конфиге клиента.
CS378x (он же Camd35) — ещё один протокол, порт обычно 15000 или 35000. Реже встречается в современных установках, но OScam его поддерживает как тип ридера camd35. Выбирать его имеет смысл только если сервер не поддерживает CCcam или newcamd.
Настройка CCcam: структура конфигов и портов
CCcam хранит всё в одном главном файле конфигурации. Расположение зависит от прошивки, но два пути встречаются чаще всего: /var/etc/CCcam.cfg (OpenPLi, OpenATV) и /usr/keys/CCcam.cfg (некоторые сборки на базе Enigma1). Ключи и сертификаты лежат рядом, в /usr/keys/.
Файл /var/etc/CCcam.cfg и его директивы
Вот минимально рабочий конфиг сервера CCcam с комментариями:
# Порт, на котором CCcam принимает входящие подключения
SERVER LISTEN PORT : 12000
# Разрешить управление через telnet (порт 16000)
ALLOW TELNET : YES
# Уровень логирования (0 = минимум, 3 = всё)
DEBUG : 0
# Путь к файлу с информацией о каналах
CHANNELINFO FILE : /var/etc/CCcam.channelinfo
# Максимальное количество подключённых клиентов
MAX IDLE TIME : 120
# DES ключ для шифрования соединений (менять на уникальный)
KEY : 0102030405060708091011121314
Директива SERVER LISTEN PORT задаёт порт, который нужно пробросить на роутере если сервер за NAT. DEBUG : 3 пишет подробный лог в /tmp/cccam.log — полезно при диагностике, в продакшене лучше держать 0 или 1.
Файл CCcam.channelinfo и приоритеты
Файл CCcam.channelinfo маппит CAID и SID на человекочитаемые имена каналов. Для работы кардшаринга он не обязателен, но OSD на ресивере будет показывать имена вместо hex-кодов. Скачать актуальную версию можно с форумов; формат строки: CAID:SID:Provider:ChannelName.
Строка C: line для подключения клиента
C: line — это строка подключения к удалённому CCcam-серверу. Синтаксис:
C: hostname port username password [hop-count] [decode all] [DES key]
Реальный пример:
C: myserver.example.com 12000 myuser mypassword 01 no 0102030405060708091011121314
Параметр 01 — это hop count для этого подключения. Указывает, насколько глубоко пересылать карты дальше. Значение 01 означает, что ваш ресивер может использовать карты с этого сервера, но не пересылать их следующим клиентам. Если вы сами являетесь сервером решары — можно поставить 02, но каждый лишний хоп добавляет задержку.
Параметры F: line для раздачи карт
F: line описывает клиентов, которым вы раздаёте свои карты:
F: username password reshare [Au] [Caid]
Пример:
F: client1 secretpass 1 1 0500
Здесь reshare = 1 значит клиент может пересылать карты дальше (с уменьшением hop count на 1), Au = 1 разрешает EMM-обновления для этого клиента, 0500 ограничивает раздачу только CAID 0500. Если нужно раздавать все карты без ограничений — опустите последний параметр.
Настройка OScam: oscam.server, oscam.user и oscam.conf
OScam — более гибкое решение, чем CCcam, но и конфигурация у него сложнее: несколько отдельных файлов вместо одного. Стандартные пути: /etc/tuxbox/config/oscam/ или /var/keys/. На OpenPLi часто встречается /etc/oscam/. Главное — убедиться, что все файлы в одной директории.
Главный файл oscam.conf и веб-интерфейс на порту 8888
Минимальный oscam.conf:
[global]
logfile = /var/log/oscam.log
maxlogsize = 1024
usrfile = /var/log/oscam.user
logduplicatelines = 0
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
[camd33]
port = 0
[newcamd]
port = 15000@0500:000000
[cccam]
port = 12000
Веб-интерфейс на порту 8888 — это ваш главный инструмент мониторинга. Там видны все ридеры, статусы подключений, ECM time в реальном времени. Открываете http://192.168.1.x:8888 в браузере и сразу понимаете что происходит.
Раздел [newcamd] в примере выше 15000@0500:000000 означает: слушать на порту 15000 для CAID 0500, ident 000000 (все провайдеры). Можно указать конкретный ident через двоеточие.
Описание ридеров в oscam.server
Файл oscam.server описывает источники карт — физические ридеры или удалённые серверы. Пример ридера типа CCcam:
[reader]
label = mycccam_server
protocol = cccam
device = myserver.example.com,12000
user = myuser
password = mypassword
caid = 0500,1810
group = 1
reconnecttimeout = 30
au = 0
Пример ридера типа newcamd:
[reader]
label = newcamd_server
protocol = newcamd
device = myserver.example.com,15000
user = myuser
password = mypassword
key = 0102030405060708091011121314
caid = 0500
group = 2
au = 0
Параметр au = 1 включает обработку EMM — автоматическое обновление ключей карты. Работает только с физическими картами в локальном ридере. Через удалённый сервер или решару au = 1 не работает принципиально: EMM нужна живая карта на месте.
Учётные записи клиентов в oscam.user
Файл oscam.user описывает клиентов, которым OScam раздаёт ключи:
[account]
user = client1
pwd = clientpassword
disabled = 0
expdate = 2026-12-31
group = 1
caid = 0500
ident = 0500:000000
au = 0
maxconnections = 1
group здесь должен совпадать с group в oscam.server — так OScam знает, какие ридеры использовать для этого клиента. maxconnections = 1 запрещает одновременный вход с одним логином — разумная мера.
Профили caid и ident в oscam.services
Файл oscam.services позволяет создавать именованные профили с конкретными CAID, SID и ident:
[mypackage]
caid = 0500
provid = 000000
srvid = 0001,0002,0003
После этого в oscam.user можно указать services = mypackage — клиент получит доступ только к перечисленным каналам. Удобно когда нужно разграничить доступ между клиентами без создания отдельных ридеров.
Диагностика проблем: FREEZE, отсутствие сигнала и нестабильность
Большинство проблем с кардшарингом решаются через анализ лога. Команда для просмотра лога OScam в реальном времени:
tail -f /var/log/oscam.log
Чтение лога и расшифровка статусов ECM
В логе OScam каждая строка ECM выглядит примерно так:
2026/06/15 14:23:01 c client1 (0500&000000/1234/05AB/5C): found (382 ms) by mycccam_server
Здесь: 0500 — CAID, 000000 — провайдер ID, 1234 — service ID канала, 5C — длина ECM пакета, 382 ms — время ответа, mycccam_server — ридер который ответил. Статус found — всё хорошо. not found — ридер не имеет доступа к этому каналу. timeout — ридер не ответил вовремя.
Ошибки по времени ответа ECM time и таймауты
Порог — 700 мс. Всё что выше стабильно вызывает FREEZE, потому что CW должен прийти до того, как декодер потеряет поток. На практике комфортное значение — до 400 мс.
Если ECM time стабильно 800–1200 мс — это признак либо перегруженного сервера, либо длинной цепочки решары. Также проверьте синхронизацию времени на ресивере: рассинхрон в несколько минут ломает авторизацию на уровне протокола. На Enigma2 — ntpdate pool.ntp.org или настройка NTP в конфиге системы.
Параметр таймаута ECM в OScam задаётся в oscam.conf:
[global]
ecmnotfoundlimit = 3
waitforcards = 300
А в oscam.server для конкретного ридера:
reconnecttimeout = 30
ecmwhitelist = 0500:50,55,60
ecmwhitelist ограничивает допустимые длины ECM пакетов — иногда помогает отфильтровать мусорные запросы и снизить нагрузку.
Проблемы NAT, проброс портов и фаервол
Если вы поднимаете сервер дома — за роутером с NAT — порт нужно пробросить явно. На большинстве роутеров это "Virtual Server" или "Port Forwarding": внешний порт 12000 → внутренний IP ресивера, порт 12000, протокол TCP.
Проверить доступность перед тем как раздавать данные клиентам:
telnet yourexternalip 12000
Если соединение устанавливается — порт открыт. Если "Connection refused" — либо CCcam не запущен, либо порт не проброшен. Если висит без ответа — скорее всего фаервол на роутере или ресивере блокирует пакеты.
На Linux-ресивере проверить правила iptables:
iptables -L -n | grep 12000
И добавить разрешение если нужно:
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
Альтернатива для сервера без белого IP — туннель через VPS. Инструменты типа frp или ngrok позволяют пробросить локальный порт через внешний сервер, но это добавляет ещё один хоп и латентность.
Конфликт нескольких ридеров и приоритеты
Когда два ридера отдают один и тот же CAID, OScam должен знать которому доверять больше. Параметр priority в oscam.server отвечает за это:
[reader]
label = local_card
protocol = mouse
device = /dev/ttyUSB0
caid = 0500
group = 1
priority = 1
[reader]
label = remote_cccam
protocol = cccam
device = remoteserver.com,12000
caid = 0500
group = 1
priority = 5
Меньшее значение = выше приоритет. Локальная карта с priority = 1 будет использоваться первой. Удалённый сервер с priority = 5 — резервный вариант. Без явного указания приоритета OScam выбирает ридер с наименьшим ECM time — обычно это правильно, но при нестабильном удалённом сервере лучше выставить явно.
Смешанная схема OScam-сервер + CCcam-клиент работает штатно: в oscam.conf включаете и секцию [cccam] для приёма входящих, и добавляете ридер типа cccam в oscam.server для подключения к вышестоящему серверу.
Как выбрать сервер: критерии надёжности без привязки к брендам
На рынке кардшаринга масса предложений, и отличить рабочий сервер от перепродажи без тестирования сложно. Вот на что реально смотреть.
Аптайм и стабильность ECM time
Нормальный ECM time для хорошего сервера — до 300–400 мс стабильно, без скачков. Если в тестовый период ECM time скачет от 200 до 1500 мс — сервер перегружен или имеет нестабильный канал до карты. Смотрите не среднее значение, а разброс. В OScam веб-интерфейс показывает min/avg/max прямо в таблице ридеров.
Аптайм надёжного сервера — 99%+ в месяц. Это реально проверить только через 2–4 недели использования, но косвенный признак — наличие резервных серверов или failover в данных для подключения.
Локальные карты против решары (reshare)
Сервер с локальными картами — это hop 1 для вас. Сервер-решара — hop 2 и выше. Выявить решару по описанию сложно, но hop count в CCcam.cfg при подключении к хорошему серверу будет показывать 1. В OScam смотрите на параметр hop в статусе ридера.
Высокий hop count (3+) и нестабильный ECM time — практически всегда означают цепочку решары. Такой сервер нормально работает в спокойные часы и падает в прайм-тайм, когда нагрузка растёт на всех участках цепочки.
Поддержка нужных caid и пакетов
Перед подключением уточните какие именно CAID доступны. Основные CAID для европейских пакетов: 0500 (Viaccess), 0600 (Irdeto), 0B00 (Conax), 0963/09C4 (NDS/Videoguard), 1810 (Nagravision), 1830 (Nagravision 3). Если нужный CAID в списке отсутствует — сервер не подойдёт, сколько бы он ни стоил.
Проверить реально доступные CAID после подключения можно в OScam через веб-интерфейс: раздел "Readers" → название ридера → "Cards". Там будут перечислены все карты и их CAID, к которым сервер имеет доступ.
Признаки ненадёжного источника
Несколько красных флагов которые я видел много раз:
- ECM time стабильно выше 600 мс — сервер не справляется с нагрузкой уже сейчас
- Частые переподключения в логе (reconnect каждые несколько минут) — нестабильный канал
- Hop count 3+ при заявлении о "локальных картах" — явная ложь
- Отсутствие тестового периода или демо-аккаунта — нечего скрывать тем кто уверен в качестве
- Поддержка отвечает через 24+ часов — при техническом сбое вы будете ждать столько же
И последнее: никакой shara tv biz не поможет если ваш декодер — старый ресивер с прошивкой 2019 года и CCcam 2.1.x. Актуальная версия CCcam — 2.3.0, OScam постоянно обновляется через svn. Устаревший клиент сам по себе может быть источником проблем с совместимостью.
Частые вопросы
Какой порт использует CCcam по умолчанию?
Порт 12000 — стандарт для протокола CCcam. Задаётся директивой SERVER LISTEN PORT : 12000 в файле CCcam.cfg. Протокол newcamd работает на портах в диапазоне 15000+, обычно 15000–15010. CS378x (Camd35) чаще всего настраивается на 35000.
Где лежат конфиги OScam?
Зависит от прошивки. На большинстве Enigma2-боксов это /etc/tuxbox/config/oscam/ или /var/keys/. На OpenPLi и OpenATV — нередко /etc/oscam/. Там находятся четыре основных файла: oscam.conf, oscam.server, oscam.user и oscam.services.
Почему появляется FREEZE при просмотре каналов?
Самая частая причина — ECM time выше 700 мс. Это случается из-за перегруженного сервера, длинной цепочки решары (hop 3+), нестабильного интернет-соединения или проблем NAT. Смотрите лог OScam (tail -f /var/log/oscam.log) и ECM time в веб-интерфейсе на порту 8888. Ещё одна причина — рассинхрон времени на ресивере: проверьте NTP.
Чем отличается C: line от F: line в CCcam?
C: line — это строка клиентского подключения. Она говорит CCcam к какому серверу подключиться, с каким логином и паролем. F: line — параметры раздачи ваших собственных карт другим клиентам. C: — вы получаете, F: — вы отдаёте.
Как проверить доступность сервера кардшаринга?
Самый простой способ — telnet hostname 12000. Если соединение установилось — порт открыт и сервер работает. Для более детальной диагностики откройте веб-интерфейс OScam на порту 8888 и посмотрите статус ридера: там будет видно подключён ли он и какой ECM time показывает. Потери пакетов проверяются через ping hostname -c 100 — больше 1–2% потерь уже проблема.
Что означает параметр au=1 в oscam.server?
au = 1 включает обработку EMM (Entitlement Management Messages) — автоматическое обновление ключей карты. Работает только когда карта физически вставлена в локальный ридер. Через удалённый сервер или решару au=1 бесполезен: EMM нужно обрабатывать там где карта находится физически. Если карта обновила ключи но au=1 не помогает — значит вы используете не локальный ридер, а решару.