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 или внешние мониторы.