Кардшара ТВ: настройка CCcam и OScam с нуля

Главная Статьи Кардшара ТВ: настройка CCcam и OScam с нуля

Дата публикации

09.07.2026

Кардшара ТВ: настройка CCcam и OScam с нуля

Если вы дошли до этой страницы, скорее всего у вас уже есть спутниковый ресивер, базовое понимание того, как работает условный доступ, и желание разобраться, что происходит под капотом. Кардшара тв — это не магия и не "взлом". Это конкретный протокол передачи данных, и разобраться в нём можно без воды. Весь материал ниже ориентирован на образовательные цели и предполагает, что у вас есть легально приобретённая карта или тестовая подписка, которую вы хотите использовать на нескольких собственных ресиверах.

Что такое кардшара ТВ и как она работает

Начнём с главного. Любой зашифрованный канал использует систему условного доступа (CAS). Контент передаётся в зашифрованном виде, а для расшифровки нужно так называемое контрольное слово — Control Word (CW). Именно его и передаёт кардшара тв между сервером и клиентом.

Принцип обмена контрольными словами (CW/DCW)

Схема простая: на сервере стоит физическая смарт-карта. Клиент присылает зашифрованный запрос ECM (Entitlement Control Message). Карта декодирует его и возвращает DCW — descrambling control word. Клиент использует этот ключ для расшифровки видеопотока в реальном времени.

Контрольное слово меняется каждые примерно 10 секунд. Это не случайная цифра — именно поэтому все проблемы со связью проявляются фризом строго раз в 10 секунд. Клиент не успел получить новый CW до смены цикла — картинка замёрзла.

Задержка сети здесь критична. Хорошее соединение — это ECM-ответ менее 200–300 миллисекунд. Уже при 500 мс начинаются подтормаживания, а свыше 800 мс фризы становятся постоянными.

Роль ECM и EMM в дескремблировании

ECM — это запрос на получение CW, который клиент отправляет каждый раз при смене цикла. EMM (Entitlement Management Message) — отдельный поток, через который оператор управляет правами доступа конкретной карты: активирует пакеты, продлевает подписку, добавляет каналы.

Для базовой работы кардшаринга нужен только ECM. EMM важен для AU (Automatic Updating) — когда карта на сервере должна обновлять свои права без ручного вмешательства. В OScam за это отвечает параметр au в файле oscam.user.

Чем отличается сервер (share) от клиента

Сервер — это машина с физическим картридером. Он принимает ECM-запросы, прогоняет их через карту и отдаёт CW. Клиент — ресивер или программный дескремблер, у которого карты нет. Он подключается к серверу по сети и получает CW на каждый цикл.

На одном устройстве можно иметь одновременно роль сервера (с локальным ридером) и клиента (подключённого к другому серверу). OScam умеет это из коробки через систему групп.

Легальные сценарии: тестовый стенд, своя карта, изучение протоколов

Самый очевидный легальный сценарий — у вас есть одна карта спутникового оператора и несколько собственных ресиверов в одной квартире. Вместо покупки нескольких карт один сервер раздаёт CW всем устройствам в локальной сети. Второй популярный случай — тестовый стенд для изучения протоколов условного доступа в учебных целях.

Протоколы CCcam, OScam и newcamd: в чём разница

Протоколов несколько, и выбор между ними реально влияет на удобство отладки и стабильность работы. Разберём каждый.

CCcam: проприетарный протокол, порт по умолчанию 12000

CCcam — наиболее распространённый протокол в экосистеме спутникового ТВ. Порт по умолчанию — TCP 12000. Протокол закрытый, спецификация не публиковалась официально, но де-факто стал стандартом — его поддерживают почти все современные ресиверы с Enigma2 и аппаратные дескремблеры.

Минус CCcam — сложность отладки. Логи скудные, вывод информации о состоянии соединения минимальный. Понять, почему клиент не получает CW, по логам CCcam значительно труднее, чем в OScam.

OScam: открытый эмулятор, гибкая конфигурация

OScam — open source, активно разрабатывается, поддерживает практически все известные CAS-системы. Умеет принимать подключения по CCcam-протоколу и одновременно раздавать их клиентам по newcamd или другим протоколам.

Главное преимущество — веб-интерфейс на порту 8888 и подробнейшие логи. Время ответа на каждый ECM-запрос видно прямо в браузере. Для диагностики это незаменимо.

newcamd (порт 15000) и mgcamd как клиентские протоколы

newcamd работает на TCP-порту 15000 по умолчанию и используется преимущественно как клиентский протокол на старых ресиверах. mgcamd — отдельный клиентский softcam, который умеет подключаться как к CCcam-серверам, так и к newcamd. На современных прошивках Enigma2 mgcamd уступил место OScam как клиентскому решению.

Когда выбирать OScam вместо CCcam

Если вы настраиваете сервер с нуля и важна диагностируемость — берите OScam. Если клиент работает на старом железе, которое поддерживает только CCcam-протокол на входе, можно настроить OScam в режиме сервера с listener на порту 12000 — он эмулирует CCcam без проблем.

Настройка сервера OScam: пошагово

Покажу реальные конфиги, а не заготовки из одной строчки. Всё проверено на актуальных сборках OScam 11.x.

Установка и структура каталога /etc/tuxbox/config или /var/keys

На Enigma2-ресиверах конфиги OScam живут обычно в /etc/tuxbox/config/. На отдельном Linux-сервере (например, Raspberry Pi с Debian) стандартный путь — /etc/oscam/. На некоторых прошивках (DreamElite, OpenATV) встречается /var/keys/. Проверьте через find / -name oscam.conf 2>/dev/null, если не уверены.

Основные файлы конфигурации: oscam.conf, oscam.server, oscam.user. Иногда добавляют oscam.services для фильтрации по CAID и SID.

Файл oscam.conf: секция [global] и [webif]

Минимальный рабочий oscam.conf:

[global]
logfile                = /var/log/oscam.log
maxlogsize             = 200
pidfile                = /var/run/oscam.pid
usrfile                = /var/log/oscam.user
cachedelay             = 0
preferlocalcards       = 1

[webif]
httpport               = 8888
httpuser               = admin
httppwd                = yourpassword
httprefresh            = 10
httphideidleclients    = 1

Параметр preferlocalcards = 1 заставляет OScam сначала спрашивать локальный ридер, и только потом идти в сеть. Важно, если на одном ресивере одновременно стоит физическая карта и есть сетевой share.

Файл oscam.server: описание ридера карты

Пример ридера для физической карты через встроенный картридер:

[reader]
label                  = mycard
protocol               = internal
device                 = /dev/sci0
caid                   = 1830
ident                  = 1830:000000
group                  = 1
emmcache               = 1
cacheex                = 0

Если карта через USB-ридер (Phoenix/Smartmouse), меняете protocol = mouse и device = /dev/ttyUSB0. Значение caid зависит от вашей CAS-системы: Viaccess — 0500, Nagravision — 1830, Irdeto — 0604, Conax — 0B00. Неверный CAID — карта не отвечает вообще.

Для подключения к удалённому CCcam-серверу вместо физической карты используйте:

[reader]
label                  = remote_share
protocol               = cccam
device                 = server.example.com,12000
user                   = your_login
password               = your_pass
caid                   = 1830
group                  = 1
reconnecttimeout       = 30

Файл oscam.user: учётные записи клиентов и группы

Система групп в OScam связывает ридеры и пользователей. Ридер в group = 1 обслуживает только тех клиентов, у которых в group тоже указана 1.

[account]
user                   = client1
pwd                    = pass123
group                  = 1
au                     = mycard
caid                   = 1830
uniq                   = 0
monlevel               = 0

[account]
user                   = client2
pwd                    = pass456
group                  = 1
au                     = mycard

Параметр au = mycard указывает, через какой ридер этот клиент получает EMM для обновления прав. Если AU не нужен — просто не пишите эту строку.

Проверка через веб-интерфейс на порту 8888

После запуска OScam открываете браузер на http://<ip-сервера>:8888. Там видно статус каждого ридера: connected/disconnected, количество обслуженных ECM-запросов, среднее время ответа в миллисекундах, текущих клиентов.

Запуск демона: oscam -b -c /etc/oscam/. Логи в реальном времени: tail -f /var/log/oscam.log. Перезапуск без потери соединений: kill -HUP $(cat /var/run/oscam.pid).

Настройка клиента CCcam: файл CCcam.cfg

Это самая частая точка входа для новичков. Конфиг минималистичный, но синтаксис важен — лишний пробел может сломать парсинг.

Синтаксис строки C: host port username password

Строка подключения к CCcam-серверу:

C: server.example.com 12000 myuser mypassword

Именно так: C с двоеточием, пробел, хост, пробел, порт, пробел, логин, пробел, пароль. Никаких кавычек, никаких лишних символов. Можно добавить несколько строк C: для разных серверов — CCcam будет использовать первый доступный.

F-line — это анонс локального ридера другим серверам в сети. Если вы только клиент и не хотите ничего раздавать, F-lines не нужны вообще.

Путь к config: /var/etc/CCcam.cfg или /etc/CCcam.cfg

На OpenATV и большинстве современных Enigma2-образов файл лежит по адресу /var/etc/CCcam.cfg. На OpenPLi встречается /etc/CCcam.cfg. На DreamElite и некоторых образах — /usr/keys/CCcam.cfg. Если не уверены: find / -name CCcam.cfg 2>/dev/null.

Параметры share: F-line и локальные ридеры

Полный пример CCcam.cfg для клиента с одной картой и одним удалённым сервером:

# Подключение к внешнему серверу
C: remote.example.com 12000 login1 pass1

# Анонс локальной карты (если хотите делиться)
# F: login pass 1 0 0 0 0
# Если не делитесь — закомментируйте F-line

DISABLE ANTI-CASCADE SHARING: yes
MINIMIZE RESSOURCES: no
SHARE RESTREAMER: no
LOG WARNINGS: yes

Перезапуск демона и проверка соединения

На Enigma2 перезапуск softcam делается через меню Softcam Manager или командой:

init 4 && sleep 2 && init 3

Либо напрямую: killall CCcam && sleep 1 && CCcam. Проверить подключение можно через веб-интерфейс CCcam на порту 16001 (если включён) или через telnet localhost 12000 — должен ответить баннер CCcam.

Диагностика и решение частых проблем

Большинство проблем с кардшаринг тв укладываются в несколько типовых сценариев. Вот таблица симптом → причина → решение:

Симптом Вероятная причина Что проверить
Card not found Неверный CAID или ident Сверить CAID в oscam.server с фактической картой
Фриз каждые ~10 сек Клиент не получает новый CW вовремя Проверить ECM response time в логах OScam
Нет подключения к серверу Закрытый порт или NAT telnet host 12000, проверить firewall
HD фризит, SD ок Высокий битрейт HD требует более быстрого CW Снизить cachedelay, проверить пинг
Каналы не открываются при наличии сигнала Несовпадение CAID/ident или нет прав в oscam.user Добавить нужный CAID в разрешения пользователя

Ошибка 'Card not found' и неверный CAID/ident

Это самая распространённая ошибка при первоначальной настройке. OScam показывает в логах строку вида ECM CAID: 1830 Ident: 000000 -- NOT FOUND. Значит, запрошенный CAID не обслуживается ни одним доступным ридером.

Проверьте: в oscam.server указан правильный CAID? Ридер находится в той же group, что и клиентский аккаунт в oscam.user? Карта реально поддерживает этот пакет? Если ридер — сетевой (remote CCcam), убедитесь, что upstream сервер вообще отдаёт этот CAID.

Фризы каждые 10 секунд: проблема со сменой CW

Классика. Картинка зависает ровно на несколько секунд и потом продолжается — и так повторяется с интервалом около 10 секунд. Это точное попадание в цикл смены контрольного слова.

Открываете tail -f /var/log/oscam.log и ищете строки с временем ответа ECM. Нормально выглядит так: ECM answer: 180 ms. Проблема начинается от 400–500 мс. Если видите 800 мс и выше — соединение слишком медленное или сервер перегружен. Проверьте ping до сервера. При пинге выше 150 мс уже есть риски, выше 250 мс — фризы почти гарантированы.

Проверка портов через telnet и firewall

Быстрая проверка доступности сервера:

telnet your.server.com 12000

Если соединение устанавливается и виден баннер — порт открыт. Если Connection refused — сервис не запущен или порт закрыт локально. Если timeout — файрвол на сервере или у провайдера.

Двойной NAT — частая проблема у тех, кто держит сервер за роутером и ещё одним роутером провайдера. В этом случае нужен проброс порта через оба устройства. Некоторые провайдеры блокируют исходящий трафик на нестандартных портах — попробуйте сменить порт на 80 или 443 в oscam.conf и CCcam.cfg.

Чтение логов OScam: строки ECM с временем ответа

В логах OScam каждый ECM-запрос выглядит примерно так:

2026/01/15 14:23:01  c (client1) ECM CAID: 1830 Ident: 000000 SID: 1234 -- found (180 ms) by mycard

Здесь: client1 — имя пользователя, 1830 — CAID, 1234 — ID сервиса, 180 ms — время ответа карты, mycard — имя ридера. Если вместо "found" стоит "not found" — смотрите на CAID и ident. Если время ответа растёт — проблема в карте или сети.

Обратите внимание: между версиями OScam 11.6 и 11.7 формат лог-строк менялся. Если у вас скрипты для парсинга логов — после обновления OScam их нужно перепроверить.

Как выбрать надёжный источник share: критерии без имён

Раз уж вы изучаете кардшара тв технически — значит, умеете читать логи и проверять соединение. Используйте эти навыки и при выборе внешнего сервера.

Стабильность аптайма и время ответа ECM

Единственный объективный критерий — время ответа на ECM в ваших реальных логах OScam. Любой сервер, который даёт средний ответ ECM выше 300 мс на вашем конкретном соединении, будет давать фризы на HD-каналах. Проверяйте это в тестовый период, а не верьте заявлениям об "аптайме 99.9%".

Пинг до сервера — первый индикатор. ping server.example.com — если стабильно ниже 50 мс, шансы на нормальную работу высокие. Географическая близость сервера реально важна.

Поддержка нужных CAID и пакетов

Перед тестом уточните конкретные CAID, которые вас интересуют. Попросите подтверждение, что сервер отдаёт именно их — и проверьте это через веб-интерфейс OScam в раздел "Readers" после подключения. Если CAID нет в списке обслуживаемых — сервер не подходит, независимо от его репутации.

Прозрачность условий и тестовый доступ

Нормальный сервер даёт тестовый период — обычно 24–72 часа. За это время реально оценить стабильность ECM, наличие нужных CAID и реакцию на разрыв связи. Если тестового доступа нет вообще — это красный флаг.

Красные флаги: завышенные обещания, отсутствие логов

Заявления типа "тысячи каналов без фризов" — бессмысленны без конкретики. Что за CAID? Какие hops от карты до вас? Какое среднее время ECM? Если ни один из этих вопросов не имеет конкретного ответа — не связывайтесь.

Ещё один признак ненадёжности: сервер не даёт никакой возможности проверить статус ридера. В нормальной схеме вы всегда видите hop count в веб-интерфейсе OScam или в логах CCcam. Если информация скрыта — значит, что-то скрывают намеренно.

Какой порт использует CCcam по умолчанию?

CCcam слушает на TCP-порту 12000 по умолчанию. newcamd работает на 15000, веб-интерфейс OScam — на 8888. Все три порта настраиваются в соответствующих конфигах, так что конкретный сервер может использовать любой другой порт — уточняйте при подключении.

Где находится файл конфигурации CCcam.cfg?

Зависит от прошивки. OpenATV и большинство современных образов Enigma2 хранят файл по адресу /var/etc/CCcam.cfg. OpenPLi использует /etc/CCcam.cfg. На некоторых кастомных сборках встречается /usr/keys/CCcam.cfg. Быстрый способ найти: find / -name CCcam.cfg 2>/dev/null.

Почему картинка фризит каждые 10 секунд?

Это классический признак проблемы со сменой контрольного слова. CW обновляется каждые ~10 секунд, и если клиент не успевает получить новый ключ до смены цикла — изображение замирает ровно на это время. Причина обычно в высоком ECM response time (проверьте логи OScam — ищите значения выше 400–500 мс) или нестабильном сетевом соединении.

Чем OScam лучше CCcam для новичка?

Открытый исходный код, подробные логи с временем ответа на каждый ECM-запрос, и веб-интерфейс на порту 8888, где всё это видно в браузере без доступа к консоли. Гибкая система групп позволяет точно управлять тем, какой ридер обслуживает каких клиентов. Диагностировать проблемы в OScam значительно проще, чем в CCcam.

Как проверить, что сервер отвечает на нужном порту?

Быстрее всего через telnet hostname 12000 — если видите ответ или баннер, порт доступен. Если timeout — проверьте файрвол на сервере (iptables -L) и проброс портов на роутере. В веб-интерфейсе OScam статус каждого ридера отображается как connected/disconnected в разделе Readers.

Что означает hop в кардшаринге?

Hop — это количество промежуточных серверов между вашим клиентом и физической смарт-картой. Hop 1 означает прямое подключение к серверу с картой — это идеально. Hop 2 — между вами и картой стоит ещё один сервер. Каждый дополнительный hop добавляет задержку к ECM-ответу и увеличивает риск фризов, особенно на HD-каналах.

О статье

  • Практические советы и инструкции
  • Материалы по спутниковому ТВ
  • Поддержка и помощь 24/7