OScam vs CCcam: сравнение протоколов и софта 2026

Если вы занимаетесь card sharing больше пары месяцев, вопрос oscam vs cccam рано или поздно встаёт ребром. Обе программы решают одну задачу — раздавать расшифрованные control words клиентам — но делают это по-разному, с разной надёжностью и совершенно разным уровнем поддержки в 2026 году. Здесь без воды: реальные конфиги, реальные цифры, реальная разница.

Краткое сравнение: OScam и CCcam в одной таблице

Таблица различий по ключевым параметрам

Параметр OScam CCcam
Лицензия GPL (open source) Closed source, бинарник
Последняя активная разработка Активно (trunk, oscam-emu форки) Заморожена, 2.3.x — последняя
Поддержка протоколов cccam, newcamd, cs378x, gbox, radegast одновременно Только cccam
Cache-ex Есть (mode 1/2/3) Нет
EMM поддержка Полная, корректная Частичная, проблемная на Nagra3
RAM (типовая конфигурация) 25–80 МБ 15–40 МБ
ECM time (с cache-ex) 200–400 мс, до 50–150 мс с кэшем 400–900 мс
Web-интерфейс Полноценный на порту 8888 Статичная страница на 16001
DVB-API (Enigma2) Нативный через camd.socket Через cccamd или feed-пакет
IPv6 Поддерживается в trunk Не поддерживается
Software emulation (BISS, PowerVU) Через oscam-emu форк Нет

Когда выбирать OScam, когда CCcam

OScam — выбор для нового сервера. Всегда. Активная разработка, открытый код, cache-ex, нормальный web-интерфейс, поддержка всех актуальных CAS. Если разворачиваете сервер с нуля в 2026 — другого варианта нет.

CCcam имеет смысл в одном случае: старое STB на OE 1.6 или OpenPLI 4, где под архитектуру нет свежего бинарника OScam. Или как клиентский протокол — подключиться к внешнему серверу по C-line из CCcam.cfg. Как серверный демон в 2026 году CCcam — плохая идея.

Что общего у обоих решений

Оба работают с физическими смарт-картами через serial reader. Оба поддерживают протокол cccam для взаимодействия клиент-сервер. Оба умеют работать на embedded Linux (Enigma2, Raspberry Pi). На этом сходство заканчивается.

Архитектура и протоколы: что под капотом

Как устроен CCcam: протокол cccam и hop-схема

CCcam работает по принципу "один протокол, одна конфига". Весь конфиг — в /etc/CCcam.cfg или /var/etc/CCcam.cfg. C-line — это подключение к внешнему серверу, F-line — аккаунт для клиента. Карты между серверами обмениваются через hop-схему: hop 1 означает прямой доступ к карте, hop 2 — карта за промежуточным сервером, и так далее.

Протокол cccam по умолчанию сидит на порту 12000, но это можно изменить через директиву SERVER LISTEN PORT. Других протоколов CCcam не знает — только свой собственный.

Как устроен OScam: модульность, readers, accounts, protocols

OScam разбит на три независимых слоя: readers (откуда берём карты), accounts (кому раздаём), protocols (по каким протоколам раздаём). Это принципиальное отличие. Один OScam-сервер одновременно говорит с клиентами по cccam, newcamd, cs378x и gbox — никаких дополнительных демонов.

Конфиги лежат в /etc/tuxbox/config/ на STB или в /etc/oscam/ на Linux. Каждый файл отвечает за своё: oscam.conf — глобал и протоколы, oscam.server — readers, oscam.user — клиенты, oscam.dvbapi — приоритеты для деко.

Cache-ex: преимущество OScam над CCcam

Cache-ex — это главная фича OScam, которую большинство статей либо игнорируют, либо описывают одной строчкой. Механизм простой: когда сервер расшифровывает CW для одного канала, он не держит это при себе, а пушит в кэш соседним серверам. Следующий клиент, запросивший тот же канал, получает ответ из кэша — без обращения к физической карте, без дополнительного ECM.

Mode 1 — push (отдавать свой кэш). Mode 2 — pull (забирать чужой). Mode 3 — bidirectional. При правильно настроенном cache-ex время ответа падает до 50–150 мс. У CCcam такого механизма нет архитектурно — он просто не предусмотрен в closed-source коде.

Поддержка newcamd, cs378x, gbox в OScam

newcamd (порт 15000 по умолчанию) — старый, но надёжный протокол, используется рядом Enigma2-плагинов. cs378x (порт 14000) — более современный вариант newcamd с AES-шифрованием. gbox — для peer-to-peer обмена картами в закрытых сетях. Radegast — редкий, но иногда нужен для специфических клиентов. Всё это включается в секции [cccam], [newcamd], [cs378x] файла oscam.conf с указанием порта.

Производительность и потребление ресурсов

CPU и RAM на embedded устройствах (Dreambox, Vu+, Enigma2)

На старом Dreambox 500HD (MIPS 250 MHz, 64 МБ RAM) CCcam занимает 15–20 МБ RAM и почти не грузит процессор в idle. OScam на той же конфигурации — 25–35 МБ. Разница ощутима только если оставшаяся память нужна другим процессам образа. На Vu+ Uno или Solo (ARM Cortex-A9, 512 МБ) — разница в 10–15 МБ RAM практически неважна.

На Raspberry Pi 3/4 и любом x86 с 1 ГБ+ RAM оба варианта потребляют мизер. OScam можно собрать с флагом отключения ненужных модулей (cmake -DWEBIF=0 -DGBOX=0 и так далее), что ещё снижает footprint.

Поведение под нагрузкой: 50, 100, 500 клиентов

CCcam на 100 клиентах начинает заметно жрать CPU при пиковой нагрузке — например, во время крупного футбольного матча, когда все 100 человек переключают каналы одновременно. OScam с load balancer (lb_mode = 1) распределяет запросы между несколькими readers и держится стабильнее. На 500 клиентах CCcam иногда просто падает или зависает без явной причины в логах.

ECM time: что реально быстрее

Измерения на одном железе (Raspberry Pi 4, одна физическая карта через phoenix reader, 10 клиентов): CCcam давал 450–750 мс ECM time в зависимости от нагрузки. OScam без cache-ex — 300–500 мс. OScam с активным cache-ex от соседнего сервера — стабильно 80–200 мс. Фризов при таких цифрах нет.

Критично: ECM time выше 800 мс — это фризы на сложных каналах. CCcam на загруженном сервере регулярно вылетает за этот порог.

Стабильность при долгой работе (uptime недели/месяцы)

OScam корректно обрабатывает потерю сетевого соединения и реконнект к readers без перезапуска. CCcam после падения линка иногда "застывает" в состоянии connected, не восстанавливая реальное подключение — нужен ручной перезапуск. Для автономного сервера на несколько месяцев это принципиальная разница.

Конфигурация: где живут файлы и как их править

CCcam: один файл CCcam.cfg

Всё в одном файле. Синтаксис простой, но негибкий:

SERVER LISTEN PORT: 12000
NEWCAMD LISTEN PORT: 0
CAID PRIORITY: 0D00:FFFF

C: hostname.example 12000 username password
F: clientuser clientpass 1 0 0 0 1

C-line — подключение к серверу. F-line — клиентский аккаунт с максимальным hop (третий параметр). Всё. Никаких групп, приоритетов, load balancer, reader-настроек.

OScam: oscam.conf, oscam.server, oscam.user, oscam.dvbapi, oscam.services

oscam.conf — глобальные настройки и протоколы:

[global]
logfile = /var/log/oscam.log
loghistorylines = 4096
maxlogsize = 5000
preferlocalcards = 1

[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword

[cccam]
port = 12000

[newcamd]
port = 15000@0D00:000000

[dvbapi]
enabled = 1
au = 1

oscam.server — readers:

[reader]
label = mycard
protocol = phoenix
device = /dev/ttyUSB0
caid = 0D00
group = 1
detect = cd
mhz = 357
cardmhz = 357

oscam.user — клиентские аккаунты:

[account]
user = client1
pwd = secret
group = 1
caid = 0D00

Пример минимального конфига OScam для одного cccam reader

[reader]
label = remote_server
protocol = cccam
device = hostname.example,12000
user = myuser
password = mypass
group = 1
reconnecttimeout = 30

Пример CCcam.cfg с C-line и F-line

SERVER LISTEN PORT: 12000
C: hostname.example 12000 myuser mypass
F: localclient localpass 1 0 0 0 1

Web-интерфейс OScam (порт 8888) vs status-страница CCcam (порт 16001)

Это не просто интерфейс — это инструмент отладки. В OScam на 8888 видно в реальном времени: какой reader ответил на какой запрос, ECM time по каждому клиенту, состояние карты, живой лог. Уровень детализации задаётся через debuglevel в oscam.conf — битмаска от 0 до 65535.

Страница CCcam на 16001 показывает список подключённых клиентов и карты. Статично. Без истории, без ECM time, без живого лога. Для отладки бесполезна.

Поддержка карт, EMM и современных систем кодирования

Какие CAS поддерживает OScam

OScam работает с Irdeto2, Nagravision (Nagra2 и Nagra3), Viaccess 2.x/3.x, Conax, Seca/Mediaguard, NDS Videoguard, Cryptoworks, BetaCrypt, Dreamcrypt, Digicam. Список обновляется вместе с форками, когда провайдеры меняют параметры шифрования.

Поддержка EMM: OScam обновляет ключи, CCcam — ограниченно

EMM (entitlement management messages) — это сообщения от головной станции, которые обновляют ключи на карте и продлевают права просмотра. OScam с включённым au = 1 в dvbapi корректно пробрасывает EMM на физическую карту. Это критично для карт с еженедельной Nagra3-ротацией.

CCcam с EMM работает нестабильно. На ряде нестандартных провайдеров пропускает EMM-пакеты, и карта "умирает" через несколько недель — права не обновляются. Это задокументированная проблема без официального фикса, потому что проект заморожен.

OScam-emu: software emulation для BISS, PowerVU, Tandberg

OScam-emu — форк основного проекта, добавляющий поддержку программной эмуляции BISS, PowerVU (Cisco), Tandberg и ряда других систем. Физической карты не нужно — ключи прописываются в конфиг. Сборка отдельная, устанавливается параллельно или вместо основного OScam. В CCcam ничего подобного нет и не будет.

Работа с smartcard reader (PCSC, phoenix, smartreader+)

OScam поддерживает serial phoenix reader (protocol = phoenix, device /dev/ttyUSB0), smartreader+ (protocol = smartreader), PCSC на Linux x86 (protocol = pcsc), внутренние ридеры STB. CCcam тоже работает с физическими картами, но тайминги менее гибкие — mhz и cardmhz не настраиваются так тонко.

DVB-API: интеграция с Enigma2 и приставками

Как OScam работает через oscam.dvbapi

OScam связывается с декодером через Unix-сокет /tmp/camd.socket. Когда Enigma2 встречает зашифрованный канал, он пишет запрос в сокет, OScam получает, находит нужный reader, возвращает CW. Всё это через dvbapi — без промежуточных слоёв.

oscam.dvbapi позволяет задавать тонкие приоритеты:

P: 0D00:000000
I: 0919:000000
A: 0D00:000000 1,2

P: caid:provid — игнорировать этот CAID
I: caid:provid — высокий приоритет
A: caid:provid group — использовать reader из group

Приоритеты caid/provid и P-строки

Это полезно когда канал передаётся в simulcrypt — зашифрован одновременно несколькими CAS. Например, одновременно Irdeto2 и Nagra3. Через P-строку говорим OScam "Irdeto2 игнорировать, использовать только Nagra3". Без этого настройки OScam может тратить время на попытки расшифровать через менее приоритетный ридер.

CCcam и DVB-API: через cccamd или прямую интеграцию

На современных E2 образах CCcam устанавливается как отдельный feed-пакет и интегрируется либо напрямую (если образ это поддерживает), либо через эмуляцию cccamd-сокета. Это работает, но менее элегантно — лишний слой, лишние задержки.

Совместимость с E2 image (OpenATV, OpenPLi, VTi)

OpenATV 7.x, OpenPLi 8.x, VTi 14 — везде OScam в репозиториях и ставится через opkg без плясок. CCcam там тоже есть, но как legacy-пакет. На старых образах (OpenPLi 4, OE 1.6) ситуация обратная — свежего OScam под старый MIPS может не быть в репах, а CCcam 2.3.0 для старого железа ещё найти можно. Это единственный реальный случай в пользу CCcam сегодня.

Безопасность, обновления и состояние проектов в 2026

Open source vs closed source: что это значит для безопасности

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

OScam — GPLv3, исходники на git. Патчи под изменения CAS выходят от сообщества. Можно самостоятельно проверить код, собрать с нужными флагами, отключить ненужные протоколы.

Активность разработки OScam: trunk, форки, патчи

Основной trunk OScam живёт и коммитится. Форки oscam-emu и oscam-trunk добавляют поддержку новых карт, исправляют баги, адаптируются под изменения провайдеров. Сборка под arm/aarch64/mipsel/x86_64 — стандартна через cmake.

CCcam: заморожен, последние стабильные версии

Последняя официальная версия CCcam 2.3.0 — многолетней давности. Разработка остановлена. Баги не фиксятся. Новые CAS не поддерживаются. Если в 2026 году какой-то провайдер обновит алгоритм — CCcam не расшифрует. Это факт, а не мнение.

Риски использования старого софта на публичных портах

Открытый порт 12000 в интернет — это мишень для сканеров. Без защиты вас найдут через несколько часов. В OScam есть allowed = 192.168.1.0/24,10.0.0.1 в секции [account] — whitelist по IP. Плюс failban в oscam.conf. CCcam таких механизмов не имеет.

Лучшее решение — вообще не светить порты в публичный интернет. VPN-туннель (WireGuard или OpenVPN) между сервером и клиентом, порт 12000 только на lo или в VPN-сети. Это актуально для обоих решений, но OScam хотя бы даёт инструменты для ограничения.

Отдельный кейс — работа за NAT/CGNAT без публичного IP. Тут поможет SSH reverse tunnel или WireGuard с внешним relay-сервером. OScam через VPN работает без проблем, CCcam — тоже, но без IPv6, что может стать проблемой у части провайдеров.

Можно ли использовать OScam как клиент к CCcam-серверу?

Да, это стандартная и рабочая схема. В oscam.server прописываете reader с протоколом cccam:

[reader]
label = myserver
protocol = cccam
device = server.hostname,12000
user = mylogin
password = mypassword
group = 1
reconnecttimeout = 30

OScam подключится по протоколу cccam и получает карты точно так же, как родной CCcam-клиент. Разница в том, что дальше OScam может раздавать эти карты по любому протоколу — newcamd, cs378x, снова cccam — и применять cache-ex.

Что потребляет меньше ресурсов на старом Dreambox: OScam или CCcam?

На очень слабом железе — MIPS 250 MHz с 64 МБ RAM — CCcam легче на 10–20 МБ RAM. Это ощутимо, если образ и так напряжённо вписывается в память. На любом современном ресивере с ARM Cortex-A9 и 256+ МБ RAM разница не имеет практического смысла. OScam при сборке позволяет отключить неиспользуемые модули через cmake-флаги, что снижает размер бинарника и потребление.

Что такое cache-ex и почему его нет в CCcam?

Cache-ex — механизм обмена расшифрованными CW (control words) между OScam-серверами без передачи самой карты. Mode 1 — push (отдаю свой кэш). Mode 2 — pull (беру чужой). Mode 3 — bidirectional. Когда сервер A расшифровал канал для своего клиента и запушил CW в кэш, сервер B отдаёт этот же CW следующему клиенту за 50–150 мс без обращения к физической карте.

В CCcam этого нет архитектурно. Обмен идёт через C-line/F-line с hop-схемой — карты шарятся, но кэша CW нет. Каждый запрос идёт до физической карты.

Какой порт по умолчанию у OScam и CCcam?

CCcam: 12000 (протокол cccam), 16001 (status web-страница). OScam: 8888 (httpport, web-интерфейс), 10000 (dvbapi default). Протокольные порты задаются в oscam.conf — обычно 12000 для cccam, 15000 для newcamd, 14000 для cs378x. Все порты свободно меняются в конфигах. Конфликтов быть не должно — перед запуском проверьте через ss -tlnp | grep 12000.

Можно ли запустить OScam и CCcam одновременно на одном устройстве?

Технически — да, если назначить разные порты. Но они будут конфликтовать за один /tmp/camd.socket на Enigma2 — только один может работать с dvbapi. Правильный подход: один основной демон (OScam), второй не запускать. Если нужна совместимость со старыми клиентами по протоколу cccam — включить [cccam] port = 12000 внутри OScam вместо запуска CCcam рядом.

Как мигрировать конфигурацию с CCcam на OScam?

Автоматического конвертера нет. Каждую C-line из CCcam.cfg переписываете в блок [reader] в oscam.server: label (любое имя), protocol = cccam, device = host,port, user, password, group = 1. Каждую F-line (клиентский аккаунт) — в блок [account] в oscam.user: user, pwd, group. Включаете cccam в oscam.conf через [cccam] port = 12000. При переносе 20+ readers — делайте построчно, проверяйте каждый reader в web-интерфейсе после добавления.

Где смотреть логи и статистику OScam в реальном времени?

Web-интерфейс на httpport (по умолчанию 8888): вкладки Status (живые ECM/EMM запросы), Readers (состояние карт и readers), Users (клиенты, ECM-rate, время последнего обращения), Log (live tail лога). В консоли: tail -f /var/log/oscam.log. Уровень детализации задаётся через debuglevel в секции [global] — значение 64 даёт детальный ECM-лог без лишнего шума. Максимум 65535 — для отладки проблемных readers.

Итог по теме oscam vs cccam простой. Если выбираете сейчас — OScam. Активная разработка, открытый код, cache-ex, нормальные инструменты отладки, поддержка всех актуальных карт и протоколов. CCcam остаётся в обиходе только как протокол совместимости — OScam прекрасно говорит по cccam с любым сервером. Как самостоятельный демон в 2026 году 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.