Шара ТВ: настройка CCcam и OScam сервера в 2026
Если вы читаете это, значит уже знаете базовое: шара тв — это не магия, а конкретный технический процесс обмена ключами расшифровки между вашим ресивером и удалённым сервером. Но одно дело знать в общих чертах, другое — понимать, почему картинка фризит, где лежит конфиг и что означает «card not found» в логе. Разберём по-взрослому.
Что такое шара ТВ и как работает cardsharing
Спутниковый сигнал зашифрован. Чтобы его расшифровать, ресивер должен получить так называемые control words — два 8-байтовых ключа, которые меняются каждые 8–10 секунд. Обычно их выдаёт вставленная в ресивер смарт-карта. Шара тв работает иначе: ваш ресивер сам карты не имеет, зато сервер — имеет.
Принцип обмена control words (CW)
Схема выглядит так. Ресивер ловит из потока ECM-пакет (Entitlement Control Message) — зашифрованный запрос на получение ключей. Этот пакет уходит по сети на сервер. Сервер передаёт его своей физической карте, получает от неё DCW (Decrypted Control Words) и отправляет обратно клиенту. Ресивер расшифровывает видеопоток.
Весь цикл должен уложиться примерно в 300–500 мс. Если не укладывается — вы видите фриз. Именно поэтому пинг до сервера так важен: это не маркетинг, а физика процесса.
Роли сервера и клиента в схеме шары
Сервер — машина с физической смарт-картой в USB-кардридере или встроенном слоте. На ней крутится CCcam или OScam, которые принимают входящие соединения от клиентов и обрабатывают ECM-запросы. Клиент — ваш ресивер (Enigma2, OpenATV, TiVuMax и т.д.), который подключается к серверу через интернет и получает CW.
Reshare — промежуточное звено. Один клиент может раздавать полученные ключи дальше. Чем длиннее цепочка reshare, тем выше суммарная задержка. Три хопа — уже проблема.
Разница между CCcam, OScam, MGcamd и newcamd
CCcam — старый проприетарный протокол, появился примерно в 2006 году. Простой в настройке, работает из коробки на большинстве Enigma2-боксов. Но гибкости мало, логи скудные.
OScam — open source, активно развивается, поддерживает сразу несколько протоколов: cccam, newcamd, mgcamd, radegast. На сервере OScam объективно лучше: подробные логи, веб-монитор, гибкая приоритизация ридеров. Именно его используют серьёзные установки.
MGcamd и newcamd — протоколы, которые вы чаще встретите в строках подключения к ридеру, а не в самостоятельных демонах. newcamd работает на порту 15000 по умолчанию, MGcamd — конфиг в /etc/mg_cfg. Оба поддерживаются OScam как входящие протоколы.
Что такое DCW, ECM и EMM простыми словами
ECM (Entitlement Control Message) — запрос, зашифрованный провайдером. Содержит зашифрованные CW. Только легальная карта может его расшифровать.
DCW (Decrypted Control Words) — то, что карта возвращает в ответ. Собственно ключи для расшифровки видео. Два ключа по 8 байт: нечётный и чётный, для чередования.
EMM (Entitlement Management Message) — сообщения для обновления прав на карте. Если сервер работает в режиме AU (auto-update), он пишет EMM на карту, сохраняя подписку активной. Без AU карта со временем теряет доступ к каналам.
Настройка клиента CCcam: конфигурационные файлы и строки
На Enigma2-ресиверах CCcam читает конфиг при старте из одного файла. Никаких баз данных, никакого XML — чистый текст. Это его главное достоинство и одновременно ограничение.
Путь к файлу /var/etc/CCcam.cfg
На Enigma2 (OpenATV, OpenPLi, VTi и их форках) конфиг лежит строго по пути /var/etc/CCcam.cfg. Редактировать его можно через FTP (FileZilla, WinSCP) или напрямую через SSH. На некоторых сборках путь дублируется в /etc/CCcam.cfg — это симлинк, не пугайтесь.
На обычном Linux-ресивере или Raspberry Pi с самосборным CCcam конфиг ищите там, где указано при компиляции, обычно /etc/CCcam.cfg или /usr/local/etc/CCcam.cfg.
Синтаксис строки C: host port username password
Строка подключения к серверу выглядит так:
C: my.server.com 12000 myuser mypassword no { 0:0:1 }
Разберём по полям: C: — тип строки (client line). Далее хост или IP сервера, порт, логин, пароль. Параметр no означает, что шифрование CCcam-протокола отключено (стандартная практика, так быстрее). Фигурные скобки с 0:0:1 — фильтр по CAID/provid/serviceID; 0:0:1 означает «всё разрешено».
Если сервер выдаёт конкретный пакет, например Viasat (CAID 0x0500), строка приобретёт вид:
C: my.server.com 12000 myuser mypassword no { 0500:000000:0 }
Параметры no/yes для шифрования и reshare
Параметр после пароля управляет шифрованием канала. no — без шифрования. yes — с шифрованием CCcam (работает медленнее, нужно только в недоверенных сетях). Большинство публичных серверов ожидают no.
Параметр reshare в /var/etc/CCcam.cfg задаётся отдельной директивой:
RESHARE DISTANCE: 0
Значение 0 означает «не раздавать дальше». Если поставить 1 — клиенты вашего ресивера смогут использовать полученные ключи. Не поднимайте этот параметр без необходимости — это увеличивает нагрузку и создаёт юридические риски.
Проверка статуса через веб-интерфейс на порту 16001
После запуска CCcam открывает HTTP-сервер на порту 16001. Введите в браузере http://<IP_ресивера>:16001. Увидите список линий: ON значит соединение установлено и карты видны, OFF — проблема с подключением.
Перезапустить демон можно командой:
killall -9 CCcam && sleep 2 && CCcam
Или через init.d скрипт, если он присутствует:
/etc/init.d/CCcam restart
На OpenATV также работает systemctl restart CCcam, если сборка на systemd.
Настройка сервера OScam: dvbapi, reader и protocol
OScam — это другой уровень. Три отдельных файла конфигурации, каждый отвечает за свою область. Поначалу выглядит сложно, но логика там чёткая.
Структура файлов oscam.conf, oscam.server, oscam.user
Все конфиги лежат в директории /etc/oscam/. Три ключевых файла:
oscam.conf— глобальные настройки и dvbapioscam.server— описание ридеров (физических карт и удалённых линий)oscam.user— учётные записи клиентов, которые подключаются к вашему серверу
Запуск сервера:
./oscam -b -c /etc/oscam
Флаг -b — background (демон), -c — путь к директории с конфигами.
Секция [dvbapi] и параметр boxtype
Если OScam работает прямо на ресивере (а не на отдельном сервере), нужна секция [dvbapi] в oscam.conf:
[global]
logfile = /var/log/oscam.log
loghistorylines = 200
maxlogsize = 1024
[dvbapi]
enabled = 1
user = dvbapi_user
boxtype = dreambox
pmt_mode = 0
request_mode = 0
Параметр boxtype задаёт тип устройства. Для Enigma2-боксов обычно dreambox или enigma2. Для VU+ — тоже dreambox. Для Android-приставок — pc. Неверный boxtype — и расшифровки не будет, хотя соединение установится.
Настройка reader для cccam и newcamd протоколов
В oscam.server описываем каждое подключение к источнику карт. Для CCcam-линии:
[reader]
label = cccam_line1
protocol = cccam
device = my.server.com,12000
user = myuser
password = mypassword
group = 1
cccversion = 2.3.0
ccckeepalive = 1
reconnecttimeout = 30
Для newcamd-линии всё похоже, но появляется поле key:
[reader]
label = newcamd_line1
protocol = newcamd
device = my.server.com,15000
user = myuser
password = mypassword
key = 0102030405060708091011121314
group = 1
Параметр group связывает ридер с пользователями из oscam.user — только пользователи с таким же номером группы смогут использовать этот ридер.
Локальный USB-кардридер описывается иначе:
[reader]
label = local_card
protocol = mouse
device = /dev/ttyUSB0
group = 1
cardmhz = 368
mhz = 368
Веб-монитор OScam на порту 8888
В oscam.conf добавьте секцию:
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
Открываете http://<IP>:8888 в браузере. Там всё: статус ридеров, активные клиенты, таблица ECM с временем отклика, счётчики CW на каждого клиента. В разделе «Readers» строка с каждым ридером показывает пинг до источника и количество успешно отданных CW. Это реально полезно при диагностике.
Решение типовых проблем: фризы, no signal, нет ключей
Большинство проблем со шара тв делятся на три категории: ресивер не может подключиться к серверу, сервер не имеет нужного пакета, сервер имеет пакет но отвечает слишком медленно. Лог OScam отличает одно от другого.
Диагностика по логам: ECM time и rejected
Смотреть лог в реальном времени:
tail -f /var/log/oscam.log
Строка успешного декодирования выглядит примерно так:
2026/01/15 14:23:01 c (dvbapi) Demux 0 Decoding ok for channel SomeChannel (CA 0500/000000) by reader cccam_line1 (ECM time: 243 ms)
ECM time до 500 мс — хорошо. 500–800 мс — терпимо, на динамичном видео могут быть микрофризы. Больше 800 мс — будут заметные фризы даже на статичных сценах.
Строка с ошибкой:
2026/01/15 14:23:05 c (dvbapi) Demux 0 no matching reader for CA 0919/000000
Это не «фризы», это «карта не найдена» — сервер в принципе не имеет нужного пакета.
Высокий пинг и фризы на динамичных сценах
Интересный случай — пинг нормальный (40–60 мс), на статичных сценах всё ОК, но на динамичном футболе или экшене — фризы. Причина: H.264/H.265 на динамике генерирует больше данных в единицу времени, канал перегружается, задержка ECM-запроса растёт именно в этот момент.
Проверить канал до сервера:
ping -c 100 my.server.com
traceroute my.server.com
Если потери пакетов выше 0.5% или джиттер выше 20 мс — канал нестабильный, и фризы будут независимо от мощности сервера.
Ещё одна нетривиальная причина: расхождение системного времени ресивера. OScam проверяет метки времени в EMM-пакетах. Если часы ресивера расходятся с реальным временем больше чем на 5 минут, EMM отклоняются, карта теряет авторизацию и ECM начинает ходить через reshare-цепочки, увеличивая задержку. Решение: настроить NTP на ресивере (ntpdate pool.ntp.org).
Ошибка card not found и неверный CAID
«Card not found» в логе означает одно из двух: либо сервер не имеет карты с нужным CAID вообще, либо CAID/ProvID в вашем конфиге не совпадает с тем, что ожидает сервер.
Каждый пакет каналов имеет свой CAID. Viasat — 0x0500. Sky DE — 0x09C4. Canal+ — 0x0100. Если вы подключились к серверу с картой для одного пакета и пытаетесь смотреть другой — будет именно эта ошибка.
Что делать: в веб-мониторе OScam на порту 8888 открыть раздел «Files → oscam.user» и посмотреть, какие CAID разрешены для вашего пользователя. Сравнить с CAID канала, который не открывается. CAID канала можно найти в информации о PID прямо в Enigma2 (кнопка Info → техническая информация).
Проблемы с reshare и циклическими линиями
Циклический reshare — классическая ловушка. Сервер A раздаёт ключи от сервера B, а сервер B раздаёт ключи от сервера A. Оба думают, что у другого есть локальная карта. В итоге ECM уходит по петле, пока не истечёт таймаут.
В OScam это видно в логе:
reader cccam_line1: card not found, trying next reader
reader cccam_line2: card not found, trying next reader
...
ECM timeout after 1500 ms
Решение — ограничить reshare-глубину. В oscam.server для каждого ридера добавить:
cccmaxhops = 1
Параметр cccmaxhops = 1 означает, что OScam будет принимать карты только с расстоянием reshare не больше 1 хопа (то есть фактически только локальные карты сервера).
Ещё сложнее ситуация, когда два ридера имеют одинаковый CAID. OScam будет пытаться оба и может нагрузить сервер двойными запросами. Для приоритизации используют параметр lb (load balancing):
[reader]
label = fast_reader
...
lb_weight = 100
[reader]
label = slow_reader
...
lb_weight = 10
Ридер с весом 100 будет использоваться в 10 раз чаще, чем с весом 10.
Отдельный кейс — двойной NAT при поднятии сервера дома. Если ваш роутер за роутером провайдера, простой проброс портов не сработает. Нужно либо попросить провайдера убрать NAT (белый IP), либо настроить DMZ на внешнем роутере, либо поднять VPN-туннель до ресивера клиента. Проверить, что порт открыт снаружи, можно через nmap -p 12000 <ваш_внешний_IP> с другой машины.
Как выбрать надёжный сервер шары: критерии без рекламы
Конкретные названия сервисов здесь намеренно не упоминаются — рынок нестабильный, провайдеры появляются и исчезают. Но критерии оценки не меняются. Вот на что смотреть.
Стабильность аптайма и локальные карты vs reshare
Локальная карта — золото. Когда карта физически вставлена в сервер, ECM обрабатывается за 50–200 мс. Reshare добавляет 100–300 мс на каждый хоп. Три хопа — это уже 300–900 мс overhead только на транспорт.
При тестовом доступе проверяйте ECM time в OScam-мониторе. Если видите стабильно под 300 мс — скорее всего карта локальная. Если пляшет от 200 до 900 мс — reshare-цепочка с нестабильными звеньями.
Аптайм должен быть выше 99.5%. Серьёзные провайдеры показывают статистику за последние 30 дней. Меньше 98% — не ваш вариант для постоянного использования.
Низкий пинг до сервера и география узлов
Пинг от вашего ресивера до сервера должен быть меньше 80 мс. Выше 150 мс — фризы будут при любом качестве сервера. Проверить просто: ping hostname_сервера с ресивера через SSH.
Географически: если вы в России — сервер должен быть в России или Восточной Европе. Серверы в Западной Европе дадут 60–100 мс, в США — уже 150+ мс, это проблема.
Поддержка нужных протоколов и пакетов (CAID)
Перед покупкой уточните: какие CAID поддерживает сервер. Список CAID — это список конкретных пакетов каналов. Если вам нужен конкретный пакет — требуйте подтверждения именно этого CAID, а не «все каналы» в маркетинговом описании.
Протоколы: минимум должны поддерживаться CCcam и newcamd — они закроют 95% ресиверов. OScam на стороне сервера предпочтительнее: он гибче обрабатывает мультипротокольные запросы и лучше логирует проблемы.
Тестовый период для проверки качества
24–48 часов тестового доступа достаточно, чтобы оценить реальное качество. За это время проверьте: ECM time на разных каналах, поведение во время прайм-тайма (когда сервер под нагрузкой), наличие всех нужных каналов с вашим CAID.
Провайдер, который отказывает в тестовом доступе — сигнал. Либо сервер не вывезет нагрузку, либо CAID не соответствуют заявленным. Платить вслепую в этой нише — деньги на ветер.
Часто задаваемые вопросы
Какой порт по умолчанию использует CCcam?
Протокол CCcam работает на портах в диапазоне 12000–16000 — конкретный порт указывает сервер в строке подключения. Веб-интерфейс CCcam для просмотра статуса линий открывается на порту 16001. Порт прописывается в строке C: в конфиге клиента и должен точно совпадать с тем, что открыт на стороне сервера.
Где находится конфигурационный файл CCcam на Enigma2?
Файл лежит по пути /var/etc/CCcam.cfg. Редактируется через FTP-клиент (FileZilla, WinSCP) или напрямую через SSH-сессию. После любых изменений нужно перезапустить демон командой killall -9 CCcam с последующим запуском, либо через /etc/init.d/CCcam restart.
Чем OScam лучше CCcam для сервера?
OScam поддерживает сразу несколько протоколов (cccam, newcamd, mgcamd, radegast) одновременно, имеет подробные логи с ECM-временем на каждый запрос, веб-монитор на порту 8888 и гибкую систему приоритизации ридеров через load balancing. Под нагрузкой с несколькими десятками клиентов OScam стабильнее и даёт намного больше данных для диагностики, чем CCcam.
Почему появляются фризы при просмотре через шару?
Основная причина — высокий ECM time выше 800 мс. Это может быть следствием нестабильного интернет-канала с потерями пакетов, длинной reshare-цепочки (3+ хопа), перегруженного сервера в прайм-тайм или высокого пинга (150+ мс). Диагностируется через лог OScam командой tail -f /var/log/oscam.log и ping до сервера с ресивера.
Что означает ошибка card not found в логе OScam?
Сервер не имеет карты с нужным CAID для запрошенного канала, либо CAID или ProvID указан неверно в oscam.user для вашей учётной записи. Проверьте CAID нужного канала через техническую информацию Enigma2 и сравните с разрешёнными CAID в конфигурации пользователя на стороне сервера.
Как проверить, что клиент подключился к серверу?
В CCcam откройте веб-интерфейс по адресу http://<IP_ресивера>:16001 — статус линии ON означает активное соединение. В OScam откройте веб-монитор на порту 8888, раздел Readers или Status: там видны пинг до ридера, время последнего успешного ECM и счётчик отданных CW. Если CW-счётчик растёт при переключении каналов — всё работает.