OScam и CCcam: настройка, отличия и связка протоколов

OScam и CCcam — два самых известных эмулятора карт для приёма зашифрованных спутниковых каналов через сеть. Оба решения работают по схожему принципу: ресивер или ПК получает ECM-запросы от приёмного оборудования и обменивается данными с сервером, который возвращает управляющие слова для расшифровки потока. Несмотря на общую задачу, у этих программ разная архитектура, разный набор поддерживаемых протоколов и разные подходы к конфигурации. В этой статье разберём, чем отличаются OScam и CCcam, как настроить каждый из них с нуля и как связать их между собой через CCcam-протокол.

Что такое OScam и CCcam простыми словами

CCcam появился раньше и долгое время оставался стандартом де-факто благодаря простоте настройки: один текстовый файл CCcam.cfg, минимум параметров, быстрый старт. OScam — более поздний проект, написанный как универсальный эмулятор с поддержкой десятков протоколов одновременно: CCcam, Newcamd, Radegast, CS378x, Constant Cool Watchdog и другие. За счёт этого OScam умеет одновременно принимать подключения по одному протоколу и раздавать по другому, что и делает возможной связку с CCcam-серверами.

Ключевое отличие на уровне архитектуры: CCcam исторически closed-source (последние открытые версии остались на уровне 2.1.4, дальнейшее развитие идёт через форки вроде CCcam Extended или OSCam-emu с CCcam-модулем), тогда как OScam полностью открыт, активно обновляется сообществом и компилируется под конкретное железо — от Dreambox и VU+ до обычного Raspberry Pi.

Основные различия между OScam и CCcam

Архитектура и поддержка протоколов

OScam построен по модульной схеме: в конфигурации отдельно описываются reader'ы (источники карт или подключения к другим серверам) и proxy-подключения. Один и тот же экземпляр OScam может одновременно:

  • читать локальную карту через смарт-карт-ридер;
  • подключаться к внешнему CCcam-серверу как клиент;
  • раздавать доступ по Newcamd на порт 15000;
  • раздавать доступ по CCcam-протоколу на порт 12000 другим ресиверам.

CCcam такой гибкости не даёт: он умеет работать только в рамках собственного протокола CCcam, у него нет поддержки Newcamd или Radegast в родном виде.

Поддерживаемые системы условного доступа

Обе программы работают с популярными CAS: Irdeto, Nagravision, Conax, Viaccess, Cryptoworks, Seca/Mediaguard. OScam дополнительно поддерживает работу с CW-cache, LB (load balancing) между несколькими reader'ами одной и той же CAS и встроенный конвертер AU (auto update карт). У CCcam балансировка нагрузки реализована проще — через приоритеты в строке C-подключения.

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

На маломощном железе (например, старые ресиверы с процессором на 300–400 МГц) CCcam иногда работает стабильнее за счёт меньшего потребления памяти — бинарник компактнее и не тянет за собой десятки неиспользуемых модулей. OScam при полной сборке со всеми протоколами и веб-интерфейсом требует больше RAM, но эту проблему решает кастомная компиляция только нужных модулей через флаги configure (например, `--enable-module-camd35` без `--enable-webif`, если веб-панель не нужна).

Установка и настройка OScam

Требования и способы установки

OScam можно собрать из исходников через SVN/Git-репозиторий или установить готовый пакет через ipkg/opkg на энигма-подобных ресиверах (Enigma2, VU+ OE). Для сборки из исходников на Linux потребуются build-essential, libssl-dev и, при желании веб-интерфейса, libpcsclite-dev для поддержки физических карт. Типичная команда конфигурации:

./config.sh
make USE_LIBUSB=1 USE_LIBCRYPTO=1

Основные конфигурационные файлы

После установки в каталоге /etc/tuxbox/config или /var/etc/oscam появляются три ключевых файла:

  • oscam.conf — глобальные настройки: логирование, вебинтерфейс, монитор-порт;
  • oscam.server — список reader'ов, то есть источников ключей (локальные карты, подключения к другим кардшарингам);
  • oscam.user — список пользователей, которым разрешено подключаться к этому OScam.

Пример базового блока в oscam.conf для включения веб-интерфейса на порту 8888 с базовой авторизацией:

[webif]
httpport = 8888
httpuser = admin
httppwd = strongpassword123
httprefresh = 10

Пример настройки reader для приёма с внешнего сервера

Допустим, у вас есть доступ к внешнему CCcam-серверу с логином testuser и паролем testpass на IP 203.0.113.10, порт 12000. В oscam.server добавляется блок:

[reader]
label = external_cccam
protocol = cccam
device = 203.0.113.10,12000
user = testuser
password = testpass
cccversion = 2.3.0
group = 1
inactivitytimeout = 30
reconnecttimeout = 15

Параметр cccversion важен: он определяет, под какой версией протокола OScam представится удалённому серверу, — некоторые сервера блокируют подключения со слишком старой или слишком новой версией.

Установка и настройка CCcam

Конфигурационный файл CCcam.cfg

Вся настройка CCcam укладывается в один файл CCcam.cfg, который обычно лежит в /etc или /var/etc в зависимости от прошивки. Базовые директивы:

C: 203.0.113.20 12000 login2 pass2
N: 15000
P: 12000
S: portal.example-share.tv
L: cccam.log

Здесь строка C: описывает подключение к чужому серверу-донору (аналог reader в OScam), N: задаёт порт Newcamd (в чистом CCcam обычно недоступен без патчей), P: — порт, на котором сам CCcam будет раздавать доступ по протоколу CCcam.

Настройка share и friends-подключений

Для приёма подключений от других пользователей (friend-подключения) в CCcam.cfg добавляется блок F: с логином и паролем клиента и ограничением по количеству одновременных подключений (maxconnections). Пример:

F: friend01 pass01 1 0 0
{
  cccmaxhops = 2
  group = 2
}

Параметр cccmaxhops ограничивает, через сколько промежуточных серверов может пройти ключ, прежде чем дойдёт до конечного клиента — это защищает от избыточной задержки на длинных цепочках share.

Связка OScam и CCcam через протокол CCcam

Как OScam эмулирует CCcam-сервер

Главный практический сценарий связки — когда есть доступ к донору только по CCcam-протоколу, а сам приёмник (например, старый ресивер только с Newcamd-клиентом) требует другой протокол. OScam в этом случае выступает переходником: подключается к CCcam-донору как клиент (reader с protocol = cccam), а локальным устройствам раздаёт ключи уже по Newcamd или по своему же CCcam-модулю.

Пример полной конфигурации связки

Reader на стороне OScam (получение от CCcam-донора):

[reader]
label = donor_cccam
protocol = cccam
device = 198.51.100.5,12000
user = donorlogin
password = donorpass
group = 1
cccversion = 2.3.0

Пользователь на стороне OScam, которому нужно раздать доступ по Newcamd (например, для старого ресивера Dreambox 800 HD):

[account]
user = dreambox800
pwd = localpass
group = 1
au = 1
uniq = 1

Раздел camd35 в oscam.conf для активации Newcamd-порта:

[camd35]
port = 15000

После перезапуска OScam ресивер настраивается стандартным Newcamd-клиентом на подключение к IP OScam-сервера, порт 15000, с логином dreambox800 и указанным паролем — а ключи фактически приходят из внешнего CCcam-источника, пройдя через reader donor_cccam.

Типичные ошибки при связке протоколов

  • Несовпадение group-параметров. Если у reader'а group = 1, а у account group = 2, ключи не дойдут — группы должны пересекаться.
  • Неверная cccversion. Донор может отклонять подключение при версии протокола выше 2.3.0 — стоит уточнять у оператора донора, какую версию он ожидает.
  • Двойной uniq. Параметр uniq = 1 у account запрещает параллельные подключения одного и того же логина с разных IP — полезно для защиты от расшаривания собственного доступа, но может мешать при тестировании с нескольких устройств одновременно.

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

Чтение логов

В oscam.conf лог включается директивой logfile = /var/log/oscam.log. В логе строки вида "ECM (odd) not found" указывают на то, что донор не смог вернуть ключ для конкретного канала — часто это временная проблема на стороне донора, а не ошибка конфигурации. Строки "client disconnected" с кодом ошибки rejected обычно означают, что логин или пароль указаны неверно, либо превышен лимит подключений maxconnections.

Частые причины обрывов соединения

Обрывы CCcam-подключений чаще всего связаны с тремя факторами: нестабильным интернет-каналом донора, превышением заданного inactivitytimeout (если reader долго не получает ни одного ECM-запроса, соединение сбрасывается) и блокировкой порта на стороне провайдера. Порт 12000, который используется CCcam по умолчанию, иногда попадает под фильтрацию у мобильных операторов — в таких случаях помогает смена порта на нестандартный (например, 17000) по согласованию с донором.

Какой протокол выбрать

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

На практике многие пользователи держат связку из обоих решений: CCcam как лёгкий клиент на стороне конечного ресивера и OScam как центральный узел, который агрегирует несколько источников и раздаёт ключи по нужным протоколам всем устройствам в локальной сети.

Практические советы для стабильного просмотра

Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.

При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.

Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.

  • Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
  • Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
  • Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.