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 — это сразу покажет, доступен ли порт вообще.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.