Card Sharing: настройка CCcam и OScam с нуля (2026)

Card sharing — это технология, которую я объяснял десяткам людей на форумах, и каждый раз сталкиваюсь с одним и тем же: гайды либо слишком поверхностные, либо дают конфиги без единого слова объяснения. Здесь будет иначе. Разберём механику, настройку OScam и CCcam построчно, диагностику по логам — и всё это без воды.

Что такое card sharing и как работает протокол

Суть проста. У вас есть платная смарт-карта в ресивере — или на сервере где-то в сети. Зашифрованный сигнал DTH требует для расшифровки так называемый control word (CW), который меняется каждые 10 секунд. Именно за ним ресивер-клиент обращается к серверу по сети.

Принцип работы: ECM, control word и descrambling

Ресивер получает из потока DVB так называемый ECM-пакет (Entitlement Control Message) — зашифрованный запрос, который содержит информацию о том, какой CW нужен для данного канала. Этот ECM отправляется по сети на сервер с картой.

Сервер передаёт ECM смарт-карте через встроенный считыватель (физический или USB). Карта расшифровывает его и возвращает control word — 8 байт. Сервер пересылает CW обратно клиенту, и тот им расшифровывает видеопоток. Всё это должно уложиться в несколько сотен миллисекунд — иначе начинается фриз.

Этот цикл повторяется каждые ~10 секунд. Если цепочка работает быстро — картинка идёт без сбоев. Если нет — видите заморозку и артефакты.

Роль сервера и клиента в схеме

Сервер — это машина (или ресивер) с физической смарт-картой и установленным ПО вроде OScam или CCcam. Клиент — любой ресивер с поддержкой нужного протокола, который подключается к серверу по TCP.

Один сервер может обслуживать несколько клиентов одновременно. Но у каждой карты есть лимит: провайдеры научились детектировать одновременные запросы с разных IP на одну карту. Грубо говоря — слишком много клиентов на одну карту = бан карты.

Чем CCcam отличается от OScam

CCcam появился раньше, долго был стандартом. Проприетарный, последнее обновление датируется несколькими годами назад. Конфиг простой — текстовый файл с C-lines и F-lines. Для базового использования хватает.

OScam — open-source, активно поддерживается, гибкие конфиги и подробный веб-интерфейс с мониторингом ECM time в реальном времени. Поддерживает newcamd, cccam, gbox, radegast и ещё кучу протоколов одновременно. Если нужна гибкость — OScam выигрывает вчистую. CCcam проще поднять за 10 минут, но дальше упираешься в потолок.

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

OScam не стоит в репозиториях большинства дистрибутивов в актуальной версии. Придётся либо брать готовый бинарник под вашу архитектуру, либо компилировать самому.

Компиляция OScam через toolchain и SVN-исходники

Исходники лежат в SVN-репозитории проекта. Для Raspberry Pi или x86 Linux всё собирается стандартно:

svn co http://www.streamboard.tv/svn/oscam/trunk oscam-svn
cd oscam-svn
make CONF_DIR=/etc/oscam

Для embedded устройств (Dreambox, VU+, Enigma2) нужен кросс-компилятор под конкретный chipset. Обычно это mipsel-linux или sh4-linux toolchain, который поставляется с SDK прошивки. Готовые бинарники под популярные ресиверы часто публикуются в тематических сообществах — это быстрее, если компиляция не нужна принципиально.

Структура конфигов: oscam.conf, oscam.server, oscam.user

После установки конфиги лежат в /etc/oscam/ или /etc/tuxbox/config/oscam/ — зависит от прошивки. На Enigma2-боксах часто встречается /var/keys/. Три ключевых файла:

oscam.conf — глобальные параметры:

[global]
logfile = /tmp/oscam.log
maxlogsize = 200
preferlocalcards = 1

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

preferlocalcards = 1 говорит OScam сначала пробовать локальную карту, и только потом идти на удалённые. Логирование в /tmp/ — чтобы не убивать flash-память на ресивере.

oscam.server — описание источников карт (локальных или удалённых):

[reader]
label = my_card
protocol = internal
device = /dev/sci0
group = 1
emmcache = 1
au = 1

Для физической карты в ресивере — protocol = internal, device зависит от железа (/dev/sci0, /dev/sci1 или /dev/ttyUSB0 для USB-ридера). Параметр au = 1 включает автообновление ключей (Automatic Updates). Без него карта перестанет работать после смены ключей провайдером.

oscam.user — учётные записи клиентов:

[account]
user = clientname
pwd = clientpassword
group = 1
au = 1
betatunnel =
uniq = 0

Параметр group должен совпадать с group в oscam.server — так OScam понимает, к каким картам у пользователя есть доступ. uniq = 0 разрешает одному пользователю подключаться с нескольких IP (поставьте 1 или 2, если хотите ограничить).

Запуск демона и проверка через webif на порту 8888

Права на конфиги обязательны. OScam не стартует, если файлы принадлежат root, а демон запущен под другим пользователем:

chmod 644 /etc/oscam/*.conf /etc/oscam/*.server /etc/oscam/*.user
chown oscam:oscam /etc/oscam/

Запуск:

oscam -b -c /etc/oscam/ -t /tmp/oscam.tmp

Флаг -b — демонизировать. После запуска открываете браузер: http://192.168.1.x:8888. Если видите веб-интерфейс с таблицей ридеров и их статусом — всё поднялось. Если порт не отвечает — смотрите /tmp/oscam.log, чаще всего там написано почему.

Частая проблема: OScam не стартует из-за того, что порт 8888 уже занят другим процессом. Проверяется: netstat -tlnp | grep 8888. Поменяйте httpport в oscam.conf на 8080 или любой свободный.

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

CCcam настраивается через один файл — /var/etc/CCcam.cfg. На некоторых прошивках путь /etc/CCcam.cfg. Синтаксис простой, но каждый параметр имеет значение.

Файл CCcam.cfg: синтаксис строк F: и C:

На сервере создаёте учётные записи для клиентов через F-line:

F: username password 1 0 0 0 { 0:0:2 }

Формат: F: <username> <password> <uphops> <downhops> <au> <share_limit> { <provid> }

uphops — сколько хопов "вверх" клиент может получить карты. То есть насколько глубокую цепочку серверов он может видеть.

downhops — насколько этот клиент может пересдавать карты дальше. Если поставить 0 — клиент не сможет ретранслировать ваши карты на своих клиентов. Это защита от несанкционированного шаринга.

На клиенте прописываете C-line — подключение к серверу:

C: hostname.example.com 12000 username password

Можно указать несколько C-lines — CCcam попробует их по порядку при недоступности первого сервера. Порядок важен: первый сервер используется в приоритете.

Открытие порта (по умолчанию 12000) и проброс на роутере

Порт CCcam по умолчанию — 12000 (TCP). Если сервер за NAT, нужен port forwarding на роутере: внешний порт 12000 → внутренний IP сервера, порт 12000.

Если ресивер находится за двойным NAT (например, ваш роутер за роутером провайдера) — port forwarding не поможет. Варианта два: либо просите провайдера дать "белый" IP, либо поднимаете VPN-туннель (WireGuard или OpenVPN) между сервером и клиентом. VPN-решение надёжнее и работает в любой топологии.

Динамический IP — отдельная боль. C-line с IP-адресом становится нерабочей при каждой смене IP у сервера. Решение — DDNS-сервис (DynDNS, No-IP или аналог). Настраиваете DDNS-клиент на роутере, прописываете в C-line домен вместо IP.

Связка CCcam-сервер с OScam-клиентом

Это то, о чём большинство гайдов молчат. OScam умеет подключаться к CCcam-серверу как клиент — через секцию в oscam.server:

[reader]
label = cccam_server
protocol = cccam
device = hostname.example.com,12000
user = username
password = password
group = 2
cccversion = 2.3.0
cccmaxhops = 2

Параметр cccversion важен — версии CCcam несовместимы между собой. Если на сервере стоит CCcam 2.2.x, а в конфиге клиента прописан 2.3.0, соединение установится, но могут быть проблемы с декодированием или полным разрывом. Уточняйте версию у владельца сервера.

После этого в oscam.user создаёте клиентов, которые будут пользоваться этой удалённой картой через group = 2. OScam сам разруливает, к какому ридеру идти за каким ECM.

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

90% проблем — это либо порт, либо credentials, либо group. Оставшиеся 10% — пинг и перегрузка сервера. Разберём всё по порядку.

Ошибки подключения: connection refused и timeout

Первая проверка — доступность порта:

telnet hostname.example.com 12000

Connection refused — демон не запущен на сервере, или firewall его блокирует, или вы стучитесь не на тот порт. Проверьте, запущен ли CCcam/OScam: ps aux | grep -i oscam.

Timeout (соединение зависает, не отвечает) — скорее всего firewall. На сервере: iptables -L -n | grep 12000. Если правил нет — добавить: iptables -A INPUT -p tcp --dport 12000 -j ACCEPT.

Если порт открыт, но OScam всё равно не подключает — смотрите несовпадение group. Клиент в oscam.user с group = 1, а ридер в oscam.server с group = 2 — не свяжутся. Group должен совпадать.

Ещё момент: если используете newcamd-протокол, проверьте параметр key (DES-ключ 14 байт) — он должен совпадать на сервере и клиенте. Стандартный ключ: 0102030405060708091011121314. Если кто-то изменил — соединение не установится.

Freeze картинки и высокий ECM time

Норма ECM time — до 500ms. Видеть в webif OScam 200-400ms — хорошо. 600-800ms — уже плохо, периодические фризы неизбежны. Больше секунды — система практически неработоспособна.

Причины высокого ECM time:

  • Высокий пинг до сервера. Проверяется элементарно: ping hostname.example.com. Если 150ms+ — жди проблем.
  • Длинная цепочка hops. Каждый промежуточный узел добавляет задержку. Если у вас C-line → промежуточный сервер → ещё один сервер → карта, суммарное время складывается. Запрашивайте у провайдера прямое подключение или минимальный hop count.
  • Перегрузка сервера. Слишком много клиентов на одну карту. Никак не диагностировать снаружи — только по косвенным признакам: ECM time стабильно высокий в часы пик (вечер, выходные) и нормальный ночью.

Для детального анализа трафика: tcpdump -i eth0 -n port 12000. Видите пакеты туда-обратно — соединение живёт. Не видите ответных — сервер не отвечает.

Анализ логов OScam и статусов в webif

Лог /tmp/oscam.log — ваш главный инструмент. Ищите строки с WARN и ERR. Типичные записи:

2026/06/02 14:23:11   1F3A  c (clientname) CAID: 0500 rejected by group

Это значит — клиент пытается декодировать CAID 0500 (Viaccess), но у него нет доступа к ридеру с этим CAID в его group. Правьте group.

2026/06/02 14:23:45   1F3A  r (my_card) card is not found!

Ридер не видит карту. Проверьте device в oscam.server — правильный ли путь к считывателю. Попробуйте ls /dev/sci* или ls /dev/ttyUSB*.

В webif на вкладке "Readers" виден статус каждого ридера — CONNECTED, DISCONNECTED, или ERROR с кодом. ECM time показывается в реальном времени на вкладке "Clients". Если видите клиента с ECM time 0 — он подключён, но ещё не сделал ни одного запроса.

Как выбрать надёжный сервер: критерии без имён

Здесь не будет никаких конкретных рекомендаций по провайдерам. Вместо этого — критерии, по которым вы сами сделаете правильный выбор. И да, большинство этих критериев проверяемы самостоятельно через OScam webif.

Стабильность ECM time и uptime

Подключились — откройте webif и смотрите ECM time в динамике. Не один замер, а поведение за час-два в разное время суток. Хороший сервер даёт стабильные 150-350ms. Нестабильный — скачет от 100ms до 2000ms.

Uptime сервера в webif показывает, как долго OScam работает без перезапуска. Если каждые несколько часов — что-то не так: либо краши, либо ручное вмешательство оператора. Стабильный сервер работает неделями без перезапуска.

Попросите у потенциального провайдера тестовый период — 24-48 часов. Любой нормальный оператор даст. Если отказывают — это сигнал.

Поддержка нужных протоколов и пакетов

Уточняйте до оплаты: какой протокол поддерживается (cccam, newcamd, оба), какие CAID (идентификаторы провайдеров), какие пакеты (конкретные спутники и позиции). Не "все каналы" — а конкретный список CAID.

Проверить CAID можно через webif OScam: в разделе Readers смотрите на поле "CAID". После подключения к серверу там появятся CAID, которые сервер предоставляет.

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

Перепроданный сервер — это когда на одну карту подключено слишком много клиентов. Признаки:

  • ECM time нормальный ночью, высокий вечером и в выходные (нагрузка от других клиентов)
  • Периодические freeze на 2-5 секунд с последующим восстановлением — карта успевает, но с задержкой
  • В логах OScam появляются записи got 0 ECMs с конкретного ридера — сервер перестаёт отвечать на некоторые запросы
  • Различное качество в зависимости от канала: одни идут нормально, другие постоянно фризят — разные транспондеры обрабатываются по-разному

Нестабильный IP сервера — тоже признак любительского уровня. Если C-line перестаёт работать раз в несколько дней из-за смены IP — нет ни DDNS, ни нормальной инфраструктуры.

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

Порт 12000 (TCP) — стандарт для cccam-протокола. Webif OScam по умолчанию слушает на 8888, иногда 8080. Оба порта меняются в конфиге, но после изменения нужно пробросить новый порт на роутере и обновить C-lines у всех клиентов.

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

Зависит от платформы. На большинстве Enigma2-ресиверов — /etc/tuxbox/config/oscam/ или /var/keys/. На x86 Linux с ручной установкой — /etc/oscam/. Три ключевых файла: oscam.conf (глобальные настройки), oscam.server (ридеры), oscam.user (учётки клиентов).

Чем OScam лучше CCcam?

OScam — open-source проект с активной разработкой. Поддерживает десятки протоколов одновременно, имеет подробный webif с мониторингом ECM time в реальном времени, гибкую систему прав через group. CCcam проще поднять с нуля — один файл конфига. Но он проприетарный и давно не обновляется. Для серьёзной работы выбирайте OScam.

Что означает высокий ECM time и как его снизить?

ECM time — время от отправки ECM-запроса до получения control word от сервера. Норма — до 500ms, идеал — 150-300ms. Выше 600ms начинаются фризы. Причины: высокий пинг до сервера, длинная цепочка hops, перегрузка сервера. Снизить можно выбором географически близкого сервера, минимизацией hop count, или сменой провайдера если проблема в перегрузке.

Что такое uphops и downhops в CCcam.cfg?

Параметры F-line, управляющие глубиной цепочки шаринга. uphops — сколько уровней "вверх" клиент может видеть карты (1 = только прямые карты сервера). downhops — насколько клиент может ретранслировать карты своим клиентам. Значение 0 в downhops запрещает клиенту пересдавать карты дальше — это защита от неконтролируемого распространения доступа.

Почему соединение даёт connection refused?

Четыре основные причины: демон не запущен на сервере (ps aux | grep oscam), неверный порт в C-line, firewall блокирует входящие подключения на нужном порту, или неверные username/password. Реже — несовпадение group между учёткой клиента и ридером в OScam. Начинайте диагностику с telnet hostname port — это сразу покажет, доступен ли порт вообще.

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.