CCcam vs OScam: сравнение протоколов 2026
Вопрос cccam vs oscam возникает у каждого, кто настраивает cardsharing с нуля или переезжает на новый ресивер. Оба инструмента делают одно и то же — расшифровывают каналы через внешнюю карту или сервер. Но устроены они принципиально по-разному, и в 2026 году разрыв между ними стал ещё заметнее.
Я разберу оба варианта детально — с реальными конфигами, командами и цифрами. Без маркетинга и без выдуманных бенчмарков.
Что такое CCcam и OScam: краткая суть протоколов
Если совсем коротко: CCcam — это закрытый бинарник от анонимного автора, OScam — живой open-source проект с тысячами коммитов. Оба работают как клиент и сервер для распределения ключей расшифровки.
CCcam: проприетарный протокол с закрытым исходным кодом
CCcam появился в районе 2006-2007 года и долгое время был стандартом индустрии. Последняя стабильная версия — 2.3.2. Разработка фактически заморожена: новых релизов не выходит несколько лет, баги не чинятся, новые CAID не добавляются.
Протокол работает поверх TCP, шифрование встроено в бинарник. Исходники недоступны — это и плюс (простота развёртывания) и минус (нельзя ничего проверить или доработать).
OScam: open-source форк OSCam-emu с активной разработкой
OScam вырос из проекта OSCam, который сам по себе создавался как замена CCcam с открытым кодом. OScam-emu — расширенный форк с поддержкой эмуляции дополнительных CAID. Код на C, репозиторий активен, коммиты идут регулярно.
Ключевое отличие: OScam изначально проектировался как универсальная платформа, а не просто реализация одного протокола. Это видно во всём — от архитектуры конфигов до количества поддерживаемых reader'ов.
История появления и текущий статус проектов
CCcam доминировал до примерно 2012-2014 годов, пока сообщество не перешло на OSCam/OScam массово. Сейчас CCcam живёт только за счёт инерции: старые ресиверы, старые образы, старые пиры. На новых установках его выбирают редко.
OScam в 2026 — это де-факто стандарт. Практически все современные образы (OpenATV, OpenPLi, VTi) включают OScam в официальные feed'ы.
Архитектура и поддерживаемые протоколы
Здесь разница кардинальная. CCcam умеет только CCcam-протокол. OScam умеет почти всё.
CCcam: только протокол CCcam (cccam-протокол поверх TCP)
CCcam слушает входящие подключения на порту 12000 по умолчанию. Клиенты подключаются с C-line, сервер раздаёт ключи. Всё. Других вариантов нет — CCcam не умеет работать через newcamd, camd35 или что-то ещё.
Это создаёт проблему обратной совместимости: если сервер раздаёт только newcamd, подключить чистый CCcam-клиент к нему не получится.
OScam: newcamd, cccam, camd35, radegast, gbox, constcw
OScam может одновременно слушать несколько портов с разными протоколами. Типичная конфигурация: newcamd на 15000, cccam на 12001, webif на 8888. Один OScam-сервер принимает клиентов по любому из этих протоколов параллельно.
Как клиент — аналогично. В /etc/oscam/oscam.server можно прописать reader'ов с разными протоколами, и OScam будет опрашивать их все, применяя настроенные приоритеты.
Поддержка readers: phoenix, smargo, internal, SCR3310
OScam читает физические карты через несколько интерфейсов:
- internal — встроенный reader Dreambox, Vu+, Zgemma
- phoenix/smargo — USB-кардридеры через serial
- pcsc — стандартный PC/SC через libpcsclite (SCR3310, ACR38)
- mouse — serial reader в режиме mouse
CCcam тоже работает с internal reader и phoenix, но настройка жёстче зашита в бинарник. Добавить нестандартный reader в CCcam нельзя — в OScam это вопрос одной строки в конфиге.
Работа с CAM-модулями (CI, CI+)
OScam взаимодействует с CI/CI+ модулями через DVBAPI. Параметры в oscam.dvbapi определяют, какой тюнер и какой CAM использовать. CCcam тоже поддерживает CI через DVBAPI, но гибкость настройки ниже.
Конфликт CCcam и OScam на одном DVBAPI — реальная проблема. Если запустить оба, приоритет определяется порядком записей в oscam.dvbapi и тем, кто первым захватил /dev/dvb/adapter0/demux0. Обычно решается выдачей OScam приоритета и использованием CCcam только как дополнительного клиента.
Производительность и стабильность
Это самое интересное место в сравнении cccam vs oscam, потому что ответ зависит от железа.
Скорость ECM-обработки (миллисекунды на запрос)
На одной и той же физической карте через один и тот же reader:
| Протокол | ECM time (типичный) | ECM time (плохой канал) |
|---|---|---|
| OScam | 200–400 ms | 600–900 ms |
| CCcam | 300–600 ms | 800–1500 ms |
Разница объясняется архитектурой: OScam эффективнее управляет очередью запросов к reader'у. Плюс cache-ex (об этом ниже) резко снижает реальное время при повторных запросах.
Замерить самому просто. Включить в /etc/oscam/oscam.conf секцию [monitor] с aulow=0 и смотреть лог:
tail -f /var/log/oscam/oscam.log | grep "ECM"
Строка будет выглядеть примерно так: 2026/05/19 14:22:31 c (ecm time: 287 ms). Для CCcam логирование беднее — включить через CCcam.cfg параметр LOGFILE и фильтровать по "ECM".
Потребление RAM и CPU на разных платформах (ARM, MIPS, x86)
OScam: 8–15 MB RAM в покое, CCcam: 5–10 MB. Разница небольшая, но на Dreambox 500S с 64 MB RAM это уже имеет значение.
На старых MIPS-ресиверах (до 2012 года) CCcam бывает стабильнее — бинарник оптимизирован под это железо, OScam там может потреблять больше CPU из-за дополнительных фич. На современных ARM (Vu+ Duo4K, Zgemma H9S, любой на bcm7252) OScam выигрывает по всем параметрам.
Поведение при высокой нагрузке (10+ клиентов)
10 одновременных клиентов на OScam — вообще не нагрузка для ARM. Реальное узкое место — скорость физической карты (300–500 ms на ECM) и пропускная способность сети, а не сам OScam.
CCcam при 10+ клиентах начинает давать очереди запросов к карте, ECM time растёт. OScam управляет приоритетами через group и lb_weight — это позволяет настроить кто получает ответ первым.
Если ECM time скачет от 200ms до 2000ms — это почти всегда проблема сети или перегруз карты, не самого протокола. Проверить: ping -i 0.2 -c 100 сервер, смотреть на jitter.
Время переключения каналов (zapping time)
С включённым cache-ex в OScam — zapping time на популярных каналах падает до 100–200ms, потому что CW уже есть в кеше от другого клиента. CCcam каждый раз идёт к карте независимо. На практике разница заметна именно при запинге по HD-пакету, где каналов много и каждый переключает разных людей.
Настройка конфигурационных файлов
Конфигурация — это то, где CCcam проигрывает особенно наглядно.
CCcam.cfg: синтаксис F-line, C-line, N-line
Файл /etc/CCcam.cfg — простой текстовый формат. Минимальная конфигурация клиента:
# Подключение к серверу (C-line)
# C: хост порт пользователь пароль [опции]
C: server.example.com 12000 myuser mypassword
# Локальный аккаунт для раздачи клиентам (F-line)
# F: пользователь пароль ограничение reshape reshape_cardserial
F: localclient localpass 1 0 0
# N-line — подключение через newcamd к внешнему серверу
# N: хост порт пользователь пароль DES-ключ
N: newcamdserver.com 15000 user2 pass2 01 02 03 04 05 06 07 08 09 10 11 12 13 14
Всё. Больше опций мало — только LOGFILE, LOGLEVEL, IGNORERESHARE. SID-листы задаются в фигурных скобках после пароля в C-line: C: host 12000 user pass no { 0:0:1 }.
OScam: oscam.conf, oscam.server, oscam.user, oscam.dvbapi
OScam разбивает конфигурацию на несколько файлов. Стандартное расположение: /etc/oscam/ или /var/keys/ в зависимости от образа. Минимальный рабочий набор:
oscam.conf — глобальные настройки:
[global]
logfile = /var/log/oscam/oscam.log
maxlogsize = 500
preferlocalcards = 1
lb_mode = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = сильный_пароль
httpallowed = 127.0.0.1,192.168.1.0/24
[dvbapi]
enabled = 1
listenport = 9000
user = dvbapi_user
oscam.server — reader'ы (физические карты и remote серверы):
[reader]
label = remote_cccam
protocol = cccam
device = server.example.com,12000
user = myuser
password = mypassword
group = 1
cccversion = 2.3.2
ccckeepalive = 1
oscam.user — аккаунты для клиентов:
[account]
user = localclient
pwd = localpass
group = 1
au = 1
oscam.dvbapi — привязка к тюнеру:
P: 0500:000000
Пример минимальной рабочей конфигурации для каждого
Для Vu+ Duo4K на OpenATV с OScam — четыре файла выше, плюс перезапуск: systemctl restart oscam или через меню плагинов. Для CCcam — один файл и systemctl restart CCcam.
Расположение файлов: /etc/tuxbox/config/, /var/keys/, /usr/keys/
Расположение зависит от образа:
- OpenATV / OpenPLi:
/etc/oscam/ - Старый Gemini (Dreambox):
/etc/tuxbox/config/ - Некоторые образы Vu+:
/var/keys/или/usr/keys/ - CCcam везде читает
/etc/CCcam.cfgкак первичный путь
Если OScam не стартует — первое что проверить: права на директорию конфигов (chown -R root:root /etc/oscam && chmod 644 /etc/oscam/*).
Веб-интерфейс и мониторинг
Это одно из самых ощутимых преимуществ OScam для тех, кто реально следит за своей системой.
OScam WebIF: статистика, лог, управление readers в реальном времени
WebIF открывается на http://ресивер:8888. Там есть: статус каждого reader (онлайн/оффлайн, ECM time, количество запросов), список подключённых клиентов с трафиком, live log с фильтрами, статистика по CAID и SID, возможность перезапустить отдельный reader без перезапуска всего OScam.
Это полноценный dashboard. Я не знаю другого инструмента в этой нише, который даёт такую видимость в браузере без дополнительного ПО.
CCcam: webinfo на порту 16001 — базовая информация
CCcam webinfo (http://ресивер:16001) показывает: список C-line с состоянием, активные пиры, версию. Это текстовая страница, почти без форматирования. Диагностировать по ней серьёзные проблемы неудобно — нет графиков, нет истории, нет детального лога.
Просмотр ECM/EMM трафика и диагностика
В OScam WebIF есть раздел с EMM/ECM трафиком в реальном времени — видно какой CAID, какой провайдер, сколько времени занял ответ. Для диагностики "почему этот канал не работает" — бесценно.
В CCcam такого нет. Придётся парсить лог вручную.
Live log: tail -f oscam.log vs CCcam.log
OScam пишет подробный структурированный лог. С уровнем DEBUG=4 в oscam.conf видно каждый ECM-запрос с временем, CAID, SID и reader'ом, который ответил. CCcam логирует меньше деталей, формат менее предсказуемый.
# OScam: детальный лог в реальном времени
tail -f /var/log/oscam/oscam.log | grep -E "ECM|reader|client"
# CCcam: базовый лог
tail -f /var/log/CCcam.log
Включить DEBUG в OScam: в oscam.conf добавить debug = 64 в секцию [global]. На продакшне лучше держать 0 или 4 — DEBUG=64 генерирует гигабайты логов за день.
Безопасность и риски использования
Тема, которую обычно игнорируют — а зря.
Закрытый код CCcam: что внутри бинарника неизвестно
CCcam — бинарник без исходников. Что он делает кроме cardsharing — проверить невозможно. Реверс-инжиниринг старых версий находил в нём сетевую активность сверх ожидаемого. Это не значит что он обязательно вредоносный, но проверить нельзя. В 2026 году запускать закрытый бинарник из интернета на домашнем ресивере — это осознанный риск.
Открытый код OScam: возможность аудита
OScam лежит на GitLab и SVN streamboard. Код открыт, история коммитов публична. Любой может проверить что делает конкретная функция. На практике это означает: известные уязвимости быстро закрываются, и нет скрытой функциональности.
Шифрование трафика между peer'ами (DES, AES)
CCcam шифрует трафик своим алгоритмом на основе DES — детали недокументированы. OScam в режиме newcamd использует тройной DES для шифрования сессии. Ни тот ни другой не предоставляют современного end-to-end шифрования уровня TLS 1.3.
Если нужна реальная защита трафика — поднять WireGuard или OpenVPN тоннель между клиентом и сервером и работать внутри него. Тогда сам протокол cardsharing-шифрования становится вторичным.
Защита webif: HTTPS, IP whitelist, httpallowed
WebIF OScam по умолчанию открыт для всех. Обязательно ограничить:
[webif]
httpport = 8888
httpuser = admin
httppwd = минимум-16-символов-случайный
httpallowed = 127.0.0.1,192.168.1.0/24
httpdyndns = 0
Без httpallowed webif доступен из интернета если порт проброшен. Сканеры Shodan регулярно находят открытые OScam-инстансы. CCcam webinfo на 16001 — аналогичная ситуация, защита только через фаерволл.
Для HTTPS в OScam: параметр httpsport + httpscert с путём к PEM-сертификату. Самоподписанный работает нормально для домашнего использования.
Что выбрать: критерии решения
Когда обсуждают cccam vs oscam, часто ищут универсальный ответ. Его нет — зависит от ситуации. Но в 2026 году выбор в большинстве случаев очевиден.
Если ресивер старый (MIPS, до 2014) — рассмотрите CCcam
Dreambox 500S, Dreambox 800 на MIPS-процессоре, старые Clones с ядром Linux 2.6 — для них OScam может не собраться из-за несовместимости тулчейна. Или соберётся, но будет потреблять слишком много CPU. На таком железе CCcam 2.3.2 работает предсказуемо.
Проверить архитектуру: uname -m. Если выдаёт mips — искать готовый OScam-бинарник под эту платформу или оставить CCcam.
Если нужны несколько протоколов одновременно — OScam
Сервер раздаёт newcamd, а у вас CCcam-клиент? OScam решает это одной строкой в oscam.server. Нужно раздавать своим клиентам и по cccam и по newcamd одновременно? OScam, однозначно.
Если важна диагностика и логирование — OScam
Если вы администрируете сервер с несколькими клиентами и хотите понимать что происходит — OScam WebIF не имеет альтернатив. CCcam для такого сценария откровенно слаб.
Если нужна работа с физическими картами через PCSC — OScam
Только OScam. CCcam не умеет работать с PC/SC через libpcsclite. Если у вас SCR3310 или ACR38 подключён к x86-серверу — выбор очевиден.
И ещё один момент: если вы подключаетесь к серверу, который работает на OScam с cache-ex — как клиент вы от этого не выигрываете напрямую. Но если у вас тоже OScam и вы участвуете в cache-ex пуле — zapping time падает для всех участников. Это кооперативная оптимизация, которой в cccam vs oscam сравнениях почему-то не уделяют внимания.
Можно ли запустить CCcam и OScam одновременно на одном ресивере?
Да, технически можно. Главное — разные порты и чёткое разделение DVBAPI. Обычная схема: OScam как основной с доступом к DVBAPI (listenport = 9000 в oscam.dvbapi), CCcam запускается без DVBAPI и используется только как клиент для подключения к старым пирам через C-line. В oscam.server прописывается reader с protocol = cccam, который подключается к локальному CCcam как к ретранслятору. Немного громоздко, но работает.
Какой протокол даёт меньше фризов на HD/4K каналах?
OScam при правильно настроенном cache-ex. Механизм CSP (CacheEx Stream Pushing) позволяет получить уже расшифрованный CW от другого клиента в пуле без нового запроса к карте. Для 4K-каналов, где смена ключей происходит каждые 7–10 секунд, это критично — каждый фриз это пропущенный ECM. CCcam идёт к карте каждый раз независимо, cache-ex аналога нет. На хорошем линке разница не всегда заметна, но при нестабильной сети OScam с кешем выигрывает стабильно.
Почему OScam пишет "ECM not found" хотя CCcam с тем же сервером работал?
Чаще всего — проблема с группами или CAID. Алгоритм диагностики: (1) Проверить oscam.dvbapi — правильные CAID:ProviderID для вашего пакета. (2) Проверить что в oscam.server у reader стоит group = 1, а в oscam.user у user тоже group = 1 — они должны пересекаться. (3) Убедиться что protocol = cccam в reader, если сервер работает на CCcam (а не newcamd). (4) Включить debug = 255 в [global] и смотреть лог — там будет точная причина с CAID и reader'ом.
Сколько клиентов выдержит OScam на ресивере Vu+ Duo4K?
На ARM Cortex-A15 с 2GB RAM — стабильно 20–30 одновременных клиентов через newcamd и cccam вместе. Узкое место почти никогда не сам OScam, а скорость обработки ECM физической картой (300–500ms на запрос) и пропускная способность аплинка. Если карта отвечает за 400ms и у вас 20 клиентов — в худшем случае последний в очереди ждёт 8 секунд. Cache-ex решает эту проблему для повторных запросов. На x86-сервере с нормальным каналом OScam спокойно держит сотни клиентов.
Что такое cache-ex в OScam и есть ли аналог в CCcam?
Cache-ex (или CSP — CacheEx Stream Pushing) — это механизм обмена уже расшифрованными Control Words между OScam-инстансами в сети. Когда один клиент получил CW для канала, он пушит его в кеш, и следующий клиент с тем же запросом получает ответ мгновенно без обращения к карте. Настраивается в oscam.conf через секцию [cacheex] и параметр cacheex = 1 или 2 у reader'а. В CCcam аналога нет — каждый ECM-запрос идёт к источнику независимо. Это одно из ключевых преимуществ OScam для высоконагруженных сценариев.
Где взять последнюю версию OScam для моего ресивера?
Самый простой путь — через встроенный пакетный менеджер образа. На OpenATV: Menu → Setup → System → Software Management → поиск "oscam". На OpenPLi — аналогично. Готовые ipk-пакеты собраны под конкретную платформу (arm, mipsel, cortexa15hf). Если нужна последняя версия из исходников — SVN репозиторий streamboard или GitLab, сборка через стандартный CMake. CCcam-бинарники есть на сайте оригинального автора, но проект давно не обновляется — бери то что есть.
Совместим ли OScam с CCcam-пирами и наоборот?
OScam полностью совместим с CCcam в обе стороны. Как клиент — прописать reader с protocol = cccam и подключаться к любому CCcam-серверу. Как сервер — OScam раздаёт по CCcam-протоколу своим клиентам, и они не знают что сервер на OScam. Обратная совместимость однобокая: CCcam умеет только свой протокол, подключить его к newcamd-серверу напрямую нельзя. Поэтому OScam можно использовать как шлюз — принимает newcamd с сервера, раздаёт CCcam-клиентам.
Practical checklist for smooth viewing
Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.
When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.
Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.
- Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
- Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
- Save the Utgard.tv status page and Telegram bot @utgard_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.