Cardsharing: настройка CCcam и OScam с нуля 2026

Если ты занимаешься cardsharing настройка CCcam OScam — тема, которую большинство ресурсов объясняет через копипасту конфигов без единого слова о том, что происходит внутри. Эта статья не про «скачай и подключись». Здесь — механика, реальные пути к файлам, расшифровка каждого параметра и диагностика, когда всё пошло не так. Материал носит технический и образовательный характер. Законность использования целиком зависит от наличия легальной подписки у владельца карты и юрисдикции, в которой ты находишься.

Что такое cardsharing и как он работает технически

Механика простая, но понять её полностью — половина успеха в настройке. Ресивер принимает зашифрованный поток DVB. Чтобы декодировать кадр, ему нужен control word (CW) — 8-байтный ключ, который меняется каждые 10 секунд. Получить этот ключ можно только расшифровав ECM-пакет (Entitlement Control Message) с помощью физической смарт-карты.

Если карты нет локально — ресивер отправляет ECM на удалённый сервер, тот прогоняет его через реальную карту, получает CW и возвращает его обратно. Ресивер декодирует поток. Вот и весь cardsharing в двух предложениях.

Принцип обмена control words (CW) между сервером и клиентом

Клиент подключается к серверу по TCP, отправляет ECM-запрос, получает CW. Время от отправки ECM до получения CW называется ECM time. Если оно превышает ~800–1000 мс — начинаются фризы, потому что ресивер не успевает подготовить ключ к следующему кадру. Стабильная работа — это ECM time в районе 100–300 мс.

Роль ECM и EMM в процессе дешифрования

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

Отличие протоколов CCcam, newcamd и CS378x

CCcam использует собственный бинарный протокол поверх TCP, порт по умолчанию 12000. Протокол закрытый, но давно реверс-инжинирован. Newcamd работает на порту 15050 (или любом другом) с DES-шифрованием — более старый, но широко поддерживаемый. CS378x (Camd35) — ещё один протокол, работает по UDP, популярен в некоторых регионах.

OScam поддерживает все три как на приём, так и на отдачу. CCcam умеет только свой протокол. Поэтому OScam как демон гибче — он выступает универсальным прокси между протоколами.

Где проходит граница легального и нелегального использования

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

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

OScam — это то, что сейчас реально используется в продакшне на Enigma2-приставках. CCcam не обновляется с 2014 года. OScam активно поддерживается сообществом, последние сборки можно найти под конкретные архитектуры (mips, arm, aarch64).

Сборка OScam из исходников и готовые бинарники для Enigma2

Если хочешь собрать сам — нужен кросс-компилятор под целевую архитектуру приставки. Для большинства современных боксов это arm-linux-gnueabi или aarch64-linux-gnu. Репозиторий OScam живёт на svn.streamboard.tv/oscam. Команда сборки с минимальным набором модулей:

make allinone USE_LIBUSB=0 USE_PCSC=0 OSCAM_CONF_DIR=/etc/tuxbox/config/oscam

Но честно — для Enigma2 проще взять готовый ipk-пакет из репозитория своего образа (OpenPLi, OpenATV, OpenVision). Устанавливается через opkg install oscam, бинарник ляжет в /usr/bin/oscam.

Структура каталога /etc/tuxbox/config или /usr/keys

Конфиги OScam обычно живут в /etc/tuxbox/config/oscam/ на OpenPLi и производных. На некоторых образах — /var/keys/ или /usr/keys/. Точный путь задаётся при запуске флагом -c. Минимальный набор файлов в этой директории:

  • oscam.conf — глобальные настройки и параметры веб-интерфейса
  • oscam.server — описание ридеров (карты, удалённые серверы)
  • oscam.user — пользователи, которые подключаются к OScam как клиенты
  • oscam.dvbapi — приоритеты декодирования для Enigma2
  • oscam.srvid — база соответствия caid/provid каналам

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

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

[global]
logfile = /tmp/oscam.log
maxlogsize = 1000
usrfile = /tmp/oscamuser.log
debug = 64
nice = -1
WaitForCards = 1

[webif]
httpport = 8888
httpuser = admin
httppwd = changeme
httprefresh = 10
httphideidleclients = 0

[dvbapi]
enabled = 1
au = 1
boxtype = dreambox
pmt_mode = 0

Секцию [newcamd] добавляешь, если хочешь принимать подключения от клиентов по этому протоколу. Секцию [cccam] — если хочешь раздавать по CCcam-протоколу.

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

Запуск вручную:

oscam -b -c /etc/tuxbox/config/oscam

Флаг -b — фоновый режим. После запуска открываешь браузер: http://IP_приставки:8888. В веб-интерфейсе видишь ридеры, статус карт, активных клиентов и последние ECM-запросы. Если ридер показывает статус «CARD OK» — карта читается. Если «OFF» или «ERROR» — смотри лог.

Настройка CCcam-сервера и клиента

CCcam до сих пор широко используется как протокол (не как демон). Понимать его синтаксис нужно хотя бы потому, что OScam умеет с ним работать с обеих сторон.

Файлы CCcam.cfg, CCcam.channelinfo и CCcam.providers

Основной конфиг — /etc/CCcam.cfg. Остальные файлы опциональны: CCcam.channelinfo содержит названия каналов для отображения в логах, CCcam.providers — описание провайдеров. Для работы достаточно одного CCcam.cfg.

Строки C-line для клиента и F-line для сервера

C-line — это подключение к удалённому серверу. Синтаксис:

C: hostname 12000 username password

F-line — это раздача доступа своим клиентам:

F: clientuser clientpass 1 0 0

Здесь три числа — это не магия. Первое (1) — uphops: через сколько серверов карта была получена прежде чем её начали раздавать. Второе (0) — downhops: сколько хопов разрешено клиенту передавать дальше. Третье (0) — разрешить ли клиенту делиться своими локальными картами в обратную сторону. Для стандартного клиента: 1 0 0.

Стандартный порт 12000 и его смена

По умолчанию CCcam слушает порт 12000. Меняется параметром в конфиге:

SERVER LISTEN PORT: 15000

После смены нужно обновить C-line у всех клиентов и переправить проброс порта на роутере. Если на сервере firewall — открыть новый порт в iptables:

iptables -A INPUT -p tcp --dport 15000 -j ACCEPT

Параметры F: { 1 1 1 } и ограничение количества хопов

Если поставить downhops = 1 — клиент сможет передать карту ещё одному клиенту ниже. Это создаёт цепочку хопов. Каждый хоп добавляет задержку. На практике больше 2 хопов — уже нестабильно. Держи downhops = 0, если не хочешь размножения клиентов.

Перезапуск CCcam после правки конфига:

killall CCcam && sleep 2 && CCcam &

Логи смотреть здесь: /tmp/CCcam.log или /var/log/CCcam.log в зависимости от конфигурации.

Связка OScam и CCcam: гибридная конфигурация

Вот раздел, который большинство сайтов пропускает. А именно — как одновременно принимать CW с удалённого CCcam-сервера и читать локальную карту через OScam, расставив приоритеты. Это и есть настоящий cardsharing настройка CCcam OScam в гибридном режиме.

Описание [cccam] reader в oscam.server

Чтобы OScam подключился к CCcam-серверу как клиент, в oscam.server добавляется ридер с протоколом cccam:

[reader]
label = remote_cccam
protocol = cccam
device = hostname,12000
user = username
password = password
cccversion = 2.3.0
group = 2
caid = 0500,1830
inactivitytimeout = 30

Параметр group связывает ридер с пользователями. Параметр caid — какие системы шифрования через этот ридер обслуживать. Оставить пустым означает «всё». Но лучше указать конкретно — это снижает лишние ECM-запросы.

Файл oscam.user и привязка клиентов

В oscam.user описываются клиенты, которые подключаются к OScam:

[account]
user = localclient
pwd = localpass
group = 1,2
au = 1
caid = 0500
ident = 0500:023800

[account]
user = remoteclient
pwd = remotepass
group = 2
caid = 1830

Через group ты контролируешь, к каким ридерам имеет доступ каждый клиент. Клиент с group=1 работает только с ридерами группы 1. Это удобно, чтобы разграничить локальную карту и удалённый сервер.

Файл oscam.dvbapi для работы с Enigma2

Этот файл управляет тем, какие провайдеры и caid обрабатывает Enigma2 и в каком приоритете:

P: 0500:023800
P: 1830:000000
I: 0100

Строки P: — провайдеры (caid:provid) в порядке приоритета. Строка I: — игнорировать этот caid. Если у тебя несколько активных caid и ресивер пытается декодировать не тот — здесь это исправляется.

Важный момент: если одновременно запущены и CCcam, и OScam — они конкурируют за управление dvbapi. Два демона не могут одновременно слушать один dvbapi-сокет (/tmp/camd.socket). Нужно выбрать один. Обычно оставляют OScam и настраивают его как единственную точку входа.

Маршрутизация запросов между протоколами

OScam маршрутизирует ECM-запросы по группам и caid. Логика такая: пришёл ECM с caid 0500 → OScam смотрит, какие ридеры в группах клиента обслуживают этот caid → отправляет запрос на подходящий ридер → получает CW → возвращает клиенту. Если ридер не ответил за таймаут — пробует следующий в группе. Это и есть фолловер при падении одного сервера.

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

Настоящий cardsharing настройка CCcam OScam всегда заканчивается сессией диагностики. Это нормально. Вот практический порядок действий.

Ошибка 'card not found' и проверка caid/provid

В логах OScam ищем строки вида:

ECM caid 0500, provider 023800, reader remote_cccam: CARD NOT FOUND

Первый шаг — сверить caid и provid с тем, что реально приходит от сервера. В веб-интерфейсе OScam (порт 8888, раздел «ECM history») видно, что именно запрашивается. Затем открываешь oscam.srvid и проверяешь, что нужная пара caid:provid там есть и соответствует каналу.

Второй шаг — проверить, что ридер действительно обслуживает нужный caid. Смотришь на секцию [reader] в oscam.server. Если поле caid пустое — ридер принимает всё, но это не значит, что сервер на другом конце его обслуживает.

Один неочевидный сценарий: провайдер сменил параметры вещания и caid/provid изменились. Было 0500:023800, стало 0500:032830. Ресивер шлёт старый запрос — сервер его не знает. Решение: обновить oscam.srvid и перезапустить демон.

Freeze картинки и зелёный экран: проблема ECM-времени

Фризы при установленном соединении — почти всегда ECM time. Смотришь в веб-интерфейсе OScam, колонка «ECM time» или «response time» у ридера. Если там стабильно больше 600–800 мс — проблема в канале до сервера или в перегрузке сервера.

Проверка сетевой задержки банальная:

ping -c 20 hostname_сервера

Если пинг 20–30 мс, а ECM time 900 — сервер перегружен. Если пинг 300+ мс — проблема в канале. Ещё одна причина фризов: рассинхронизация системного времени на ресивере. EMM-пакеты и некоторые системы шифрования чувствительны к расхождению времени больше чем на 30 секунд. Проверяешь:

date
ntpdate pool.ntp.org

Если время сильно уехало — синхронизируешь и перезапускаешь OScam.

Connection refused: фаервол, NAT и проброс портов

Клиент не может подключиться — диагностируешь снаружи:

telnet hostname 12000

Если Connection refused — порт закрыт на стороне сервера или не слушается. Если timeout — фаервол или NAT не пропускает. Проверяешь на сервере:

netstat -tlnp | grep 12000
iptables -L -n | grep 12000

Хуже всего — двойной NAT у провайдера (CGNAT). Тогда пробросить порт через роутер недостаточно — провайдер сам сидит за NAT и твой внешний IP не маршрутизируется напрямую. В таком случае единственные рабочие варианты: попросить провайдера дать белый IP (платно), арендовать VPS и поднять обратный туннель через SSH или WireGuard, или использовать сервис типа ngrok для пробрасывания порта — но это уже экзотика для постоянного сервера.

Обратный SSH-туннель с VPS выглядит так:

ssh -R 12000:localhost:12000 user@vps_ip -N

Тогда клиенты подключаются к VPS:12000, трафик туннелируется к тебе.

Анализ логов OScam: уровни debug и фильтрация

По умолчанию debug = 64 в oscam.conf — это нормальный уровень для работы. Для диагностики ставишь debug = 255 — получаешь всё, включая каждый ECM-запрос. Лог пишется в файл, указанный в параметре logfile.

Фильтровать нужное удобно через grep:

tail -f /tmp/oscam.log | grep "ECM\|caid\|ERROR"

Файл ecm.log (если включён параметром ecmlog = 1) содержит историю всех запросов с временными метками — удобно для ретроспективного анализа.

Если на приставке стоит устаревшая прошивка Enigma2 — OScam актуальной версии может не запуститься из-за несовместимости библиотек (glibc). В этом случае либо обновляешь прошивку, либо используешь статически собранный бинарник OScam без зависимостей от системных библиотек. Статические сборки обычно чуть тяжелее, но работают на любой прошивке.

Часто задаваемые вопросы

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

CCcam слушает порт 12000. Меняется параметром SERVER LISTEN PORT: YYYYY в /etc/CCcam.cfg. После смены нужно обновить C-line у всех клиентов (заменить 12000 на новый номер) и перенастроить проброс порта на роутере. Не забудь открыть новый порт в iptables, если используется фаервол.

Чем OScam лучше CCcam для сервера?

OScam поддерживает CCcam, newcamd, CS378x и другие протоколы одновременно — и как клиент, и как сервер. Он предоставляет веб-интерфейс, гибкое разграничение пользователей по группам, кэширование CW, детальное логирование. CCcam проще в первоначальной настройке, но последнее обновление вышло в 2014 году. Для любой серьёзной конфигурации выбор очевиден — OScam.

Почему изображение замирает (freeze), хотя соединение установлено?

Причин несколько. Высокое ECM time (больше 800 мс) — ресивер не успевает получить CW до смены ключа. Нестабильный канал до сервера с пакетными потерями. Неверный приоритет ридера в oscam.dvbapi — ресивер обращается не к тому ридеру. Рассинхронизация системного времени больше чем на 30 секунд. Перегрузка сервера при большом числе одновременных клиентов.

Что означают цифры в F-line вида F: user pass 1 0 0?

Первое число — uphops: через сколько промежуточных серверов прошла карта перед раздачей. Второе — downhops: сколько хопов клиент может передать дальше своим клиентам (0 = нельзя пересылать). Третье — разрешить ли клиенту делиться своими локальными картами обратно на сервер. Для стандартной клиентской строки достаточно 1 0 0.

Как выбрать надёжный сервер, не привязываясь к конкретному названию?

Смотришь на конкретные технические параметры: среднее ECM time (желательно до 300 мс), аптайм без частых дисконнектов, поддержку нужных caid и provid, наличие тестового доступа перед оплатой. Проверяй, есть ли у сервера прозрачная политика относительно легальности подписок. Громкие обещания типа «10000 каналов» без указания конкретных caid — признак мусорного предложения.

Где хранятся конфигурационные файлы OScam на Enigma2?

Зависит от образа прошивки. На OpenPLi и OpenATV чаще всего /etc/tuxbox/config/oscam/. На старых образах — /var/keys/ или /usr/keys/. Точный путь задаётся при запуске демона флагом -c, например: oscam -b -c /etc/tuxbox/config/oscam. Если сомневаешься — проверь init-скрипт OScam в /etc/init.d/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 или внешние мониторы.