Card Sharing: настройка CCcam и OScam в 2026
Если вы занимаетесь card sharing (CCcam/OScam настройка сервера) впервые — добро пожаловать в мир, где половина проблем решается правильным конфигом, а вторая половина — пониманием того, что вообще происходит между ресивером и сервером. Здесь не будет вводных лекций про «что такое цифровое ТВ». Предполагается, что Enigma2 у вас уже стоит, DVB-карта определилась, и вам нужен рабочий шаринг.
Статья построена по принципу «от теории к практике»: сначала разберём протокол, потом конкретные конфиги с реальными путями, потом диагностику. Все команды проверены на Enigma2 (OpenPLi 9.x) и Debian-сервере.
Что такое card sharing и как работает протокол
Суть card sharing проста на бумаге: у вас есть физическая смарт-карта с подпиской, а ресиверов несколько. Протокол позволяет одному серверу с картой отвечать на запросы от нескольких клиентов. Детали — сложнее.
Принцип работы: ECM-запрос и CW-ответ
Когда ресивер хочет открыть зашифрованный канал, он берёт из DVB-потока пакет ECM (Entitlement Control Message) и отправляет его на сервер шаринга. Сервер передаёт этот ECM физической смарт-карте. Карта возвращает Control Word (CW) — 8-байтный ключ, которым дешифруется поток на 10-секундном окне. Ресивер получает CW и открывает картинку.
Весь этот цикл должен укладываться в 0.1–0.4 секунды. Если ECM time уходит за 800–1000 мс, вы получаете фризы или чёрный экран. Это фундаментальное ограничение протокола — CW нужен до того, как текущее окно дешифрования истечёт.
Роль ECM и EMM в дешифровании
ECM — это запрос Control Word для конкретного канала. EMM (Entitlement Management Message) — другое: это сервисные сообщения от оператора, которые обновляют права на карте. Без корректной обработки EMM карта через некоторое время «устаревает» и перестаёт декодировать. На практике это выглядит так: всё работает неделю, потом каналы начинают по одному пропадать.
Поэтому в oscam.user параметр au = 1 обязателен для ридера, привязанного к реальной карте. Без него EMM не передаётся и права не обновляются. Это одна из самых частых причин, почему каналы «сами по себе» отваливаются спустя несколько дней.
Чем CCcam отличается от OScam
CCcam — закрытый бинарник, разработан изначально для Dreambox. Протокол работает на порту 12000 по умолчанию. Плюс: простая конфигурация, понятный формат C-линий. Минус: нет нормального мониторинга изнутри, логи скудные, диагностика — это чтение /tmp/CCcam.log вручную.
OScam — open-source, активно развивается. Поддерживает протоколы CCcam, newcamd, cs378x (Camd3.5x), camd33, radegast. Главное преимущество — встроенный webif на порту 8888, где видно каждый ECM-запрос в реальном времени. Для серьёзной настройки OScam предпочтительнее.
Где card sharing применяется легально
Законный сценарий — одна физическая карта, легально купленная подписка, несколько ресиверов в рамках одного домохозяйства. Подключить второй телевизор в квартире через шаринг — это не обход защиты, это экономия на второй подписке, которую многие операторы прямо разрешают.
Второй легальный сценарий — тестирование DVB-оборудования и изучение протоколов CAM. Именно для этого OScam и разрабатывался как открытый инструмент.
Установка и базовая настройка OScam
OScam редко ставится через пакетный менеджер — чаще нужна сборка под конкретную платформу. На Enigma2 обычно используют готовые бинарники под ARM или MIPS, на x86-сервере — собирают сами.
Сборка OScam из исходников через toolchain
Для сборки нужен cmake и toolchain под целевую архитектуру. Базовая последовательность:
svn checkout https://svn.streamboard.tv/oscam/trunk oscam
cd oscam
cmake . -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
cp oscam /usr/bin/oscam
chmod 755 /usr/bin/oscam
Если собираете под Enigma2, используйте cross-compile toolchain от производителя вашей приставки. Готовые бинарники под Vu+, Dreambox, Gigablue распространяются в репозиториях плагинов OpenPLi и OpenATV.
Структура каталога /etc/tuxbox/config/oscam/
На Enigma2 конфиги обычно лежат в /etc/tuxbox/config/oscam/. На некоторых сборках путь — /usr/keys/. Узнать текущий ConfigDir можно из лога при запуске: OScam пишет его в первых строках. Основные файлы:
oscam.conf— глобальные настройки, webif, протоколыoscam.server— описание ридеров (карты и удалённые источники)oscam.user— клиентские аккаунтыoscam.services— группировка SID/CAID для фильтрацииoscam.srvid— база соответствия CAID+SID → название канала
Файл oscam.conf: секции [global], [cs378x], [newcamd]
Минимальный рабочий oscam.conf:
[global]
nice = -1
WaitForCards = 1
logfile = /var/log/oscam/oscam.log
maxlogsize = 1000
preferlocalcards = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
httprefresh = 10
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
[cs378x]
port = 15000
[newcamd]
port = 15001@0500:000000
Параметр preferlocalcards = 1 заставляет OScam сначала пробовать локальные ридеры, и только при их недоступности уходить на удалённые. Это снижает ECM time и нагрузку на внешние источники.
Настройка oscam.server и oscam.user
Пример oscam.server для локальной карты в ресивере:
[reader]
label = local_card
protocol = internal
device = /dev/sci0
caid = 0500
ident = 0500:123456
group = 1
emmcache = 2,3,60
au = 1
fallback = 0
Для подключения к удалённому CCcam-серверу:
[reader]
label = remote_cccam
protocol = cccam
device = server.example.com,12000
user = username
password = password
caid = 0500
group = 2
reconnecttimeout = 30
cccversion = 2.3.0
ccckeepalive = 1
Файл oscam.user — точка входа для клиентов:
[account]
user = client1
pwd = clientpass
group = 1,2
au = 1
uniq = 0
monlevel = 0
betatunnel = 0500.FFFF:0604
Права на oscam.user должны быть строгими: chmod 600 /etc/tuxbox/config/oscam/oscam.user. Файл содержит пароли — незачем давать к нему доступ всем.
Запуск webif на порту 8888 и проверка статуса
Команда запуска OScam в фоне:
oscam -b -r 2 -c /etc/tuxbox/config/oscam/ &
Флаг -b — демонизировать, -r 2 — уровень логирования (2 = нормальный). После запуска откройте браузер по адресу http://192.168.1.100:8888. На вкладке «Users» видно активные подключения, на «Readers» — статус каждого ридера и текущие ECM-запросы.
Настройка CCcam: CCcam.cfg и подключение линий
CCcam настраивается через один файл. Никакого webif, никакой гибкой фильтрации по CAID на уровне конфига — только строки и директивы. Но для простых случаев этого достаточно.
Путь к CCcam.cfg в /var/etc/ и /usr/keys/
На большинстве Enigma2-приставок CCcam.cfg лежит в /var/etc/CCcam.cfg. На старых Dreambox-сборках — в /usr/keys/CCcam.cfg. Если CCcam не видит конфиг, проверьте аргументы запуска в init-скрипте: там может быть явный путь через -c.
Синтаксис строки C: line (host port user pass)
C-линия — это подключение к удалённому серверу как клиент:
C: hostname.example.com 12000 myuser mypassword no { 0:0:2 }
Разбор полей: хост, порт (12000 по умолчанию для CCcam), логин, пароль. Параметр no — не шифровать соединение. Последнее поле в фигурных скобках — ограничение по CAID: 0:0:2 означает разрешить все CAID, до 2 hop. Если написать { 0500:000000 } — только конкретный CAID и provider.
Параметры F: line для раздачи доступа
F-линия создаёт локального пользователя, которому ваш CCcam отдаёт доступ:
F: frienduser friendpass 1 0 0 { }
F: limiteduser limitpass 1 0 0 { 0500:000000 }
Поля после логина и пароля: 1 — максимальный hop для отдачи, 0 0 — ограничения на количество одновременных дешифровок (0 = без ограничений). Пустые фигурные скобки означают разрешить все CAID. Это и есть механизм share limits — задаёте точно, что и кому отдаёте.
Опции SID assign и share limits
Дополнительные директивы в CCcam.cfg, которые реально влияют на стабильность:
MINIMUM CW WAIT: 100
ALLOW FREECAID: yes
EXTRA EMM LEVEL: 0
SHARE LIMITS: 2
ALLOW TIMESHIFTED: yes
CACHEEX: 0
MINIMUM CW WAIT задаётся в миллисекундах. Значение 100 мс — разумный минимум. Если поставить 0, при быстрых серверах иногда возникают коллизии CW. SHARE LIMITS: 2 ограничивает максимальный hop при раздаче.
Перезапуск демона и чтение CCcam.log
На Enigma2:
/etc/init.d/softcam stop
/etc/init.d/softcam start
Или прямо:
killall CCcam
CCcam &
Лог находится в /tmp/CCcam.log. Искать нужно строки с ECM, CW и CARD. Если видите can't decode — CAID не совпадает или карта не отвечает. Если no card for — ридер есть, но нужного CAID на нём нет.
Диагностика и решение типичных проблем
Большинство проблем с card sharing (CCcam/OScam настройка сервера) решаются через webif OScam — это главный инструмент диагностики. CCcam в этом плане слепой.
Канал не открывается: проверка CAID и provider ident
Первое, что смотрим в webif: вкладка «Live log», фильтр по нужному SID. Если видите строку вида ECM answer: NOK (0500/123456) — карта отвечает, но decode неудачный. Чаще всего причина — неверный ident в oscam.server.
Ident — это 6-значный hex-код провайдера. Его нужно смотреть из реального потока, например через CAM-лог или OScam в режиме debug. Частая ошибка: указать ident = 0500:000000 вместо реального 0500:023100. Карта принимает ECM, но не находит нужный ключ.
Долгое открытие и фризы: анализ ECM time
В webif OScam на вкладке «Users» есть колонка ECM time — время от отправки запроса до получения CW. Нормальные значения: 80–300 мс. Значения 500–800 мс дадут заметную задержку при переключении каналов. Свыше 1000 мс — фризы на HD-каналах гарантированы.
Причины высокого ECM time: большое количество hop в цепочке решаринга, перегруженный промежуточный сервер, сетевые задержки между узлами. Если hop = 3 и каждый узел добавляет 200 мс — получаем 600 мс только на маршрутизацию. Решение одно: сокращать цепочку или использовать источник с локальной картой (hop 1).
Линия offline: firewall, NAT и проброс портов
Проверка доступности порта в одну команду:
telnet server.example.com 12000
Если connection refused — порт закрыт или сервис не запущен. Если timeout — firewall или NAT не пробрасывает. На стороне сервера проверьте iptables -L -n | grep 12000 и правила FORWARD для NAT. Ресивер за двойным NAT (провайдер + домашний роутер) — особая история: входящие подключения F-линии не пройдут без явного проброса портов на обоих уровнях.
Ошибки newcamd и несоответствие des-ключа
Протокол newcamd использует 14-байтовый DES-ключ для шифрования соединения. В oscam.server это строка:
key = 0102030405060708091011121314
Если ключ на клиенте и сервере не совпадает точно побайтово — handshake не пройдёт. Соединение установится, но данные не расшифруются и линия уйдёт в offline. Частая ошибка: ключ скопирован с пробелами или разделителями. OScam принимает ключ как сплошную hex-строку без пробелов.
Конфликт нескольких ридеров на один CAID
Если два ридера обслуживают один CAID — OScam по умолчанию использует первый доступный. Это не всегда оптимально. Настройте приоритет через параметр weight в oscam.server:
[reader]
label = primary_reader
...
weight = 100
[reader]
label = fallback_reader
...
weight = 10
fallback = 1
Параметр fallback = 1 означает, что этот ридер используется только если основные недоступны. Без этого OScam может случайно отправить ECM на медленный удалённый ридер вместо быстрого локального.
Как выбрать провайдера card sharing: критерии оценки
Правильный подход — не «найти лучший сервис», а научиться самостоятельно оценивать любой источник. Card sharing (CCcam/OScam настройка сервера) — это техническая конфигурация, и критерии оценки такие же технические.
На что смотреть: стабильность ECM time и аптайм
Главный показатель — стабильность ECM time в webif OScam, а не среднее значение. Источник с постоянными 250 мс лучше, чем источник с «средними» 150 мс, но скачками до 2000 мс каждые несколько минут. Смотрите на дисперсию, а не на среднее.
Аптайм проверяется простым мониторингом через ping или скриптом, который раз в минуту проверяет telnet-доступность порта. Если за сутки было 3+ недоступности по 5 минут — это ненадёжный источник.
Локальные карты vs решары (количество hop)
Hop 1 означает: сервер держит физическую карту у себя. Hop 2 — сервер сам является клиентом чужого сервера. Hop 3+ — цепочка решаринга из нескольких звеньев.
Каждый дополнительный hop добавляет задержку и точку отказа. При hop 3 и выше ECM time почти всегда выходит за 500 мс. На HD-каналах это уже заметно. Спрашивайте у источника прямо: «Это локальная карта или ресейл?» Надёжный источник ответит честно.
Тестовый период и прозрачность условий
Нормальный источник даёт тестовый доступ на 24–48 часов без оплаты. За это время вы успеете проверить реальный ECM time, стабильность и наличие нужных CAID. Отказ давать тест — тревожный знак.
Прозрачность — это когда вам говорят конкретные CAID, которые поддерживаются, и hop-число. Расплывчатые формулировки вроде «все пакеты, супер качество» без технических деталей — повод искать дальше.
Признаки ненадёжного источника
Вот чек-лист того, чего нужно избегать:
- ECM time нестабилен — разброс более 500 мс за час наблюдения
- Нет тестового периода или он требует предоплаты
- Источник не называет конкретные CAID и ident
- Линия периодически уходит offline без объяснений
- Нет информации о количестве hop
- При тесте в webif OScam постоянно появляются статусы
rejectedилиtimeout
Если хотя бы три пункта совпали — источник не стоит времени на настройку.
Частые вопросы
Какой порт по умолчанию использует CCcam?
Стандартный порт CCcam-протокола — 12000. Его можно изменить в CCcam.cfg директивой NEWCAMD PORT, но 12000 — принятый стандарт, который ожидают большинство клиентов. Для протоколов OScam порты задаются отдельно в oscam.conf: cs378x обычно на 15000, newcamd — на 15001. Один OScam-сервер может слушать все эти порты одновременно.
Чем OScam лучше CCcam для настройки сервера?
OScam — open-source с активным развитием. Главное преимущество — webif с детальной диагностикой каждого ECM-запроса в реальном времени. Поддерживает одновременно несколько протоколов: CCcam, newcamd, cs378x. Гибкая система фильтрации по CAID и ident на уровне ридеров и пользователей. CCcam проще в начальной настройке, но закрытый и без нормального мониторинга — когда что-то идёт не так, диагностика сводится к разбору /tmp/CCcam.log.
Почему каналы открываются с задержкой и фризами?
Почти всегда причина — высокий ECM time. Смотрите в webif OScam колонку ECM time: если больше 500 мс, проблема налицо. Основные причины: большое количество hop в цепочке решаринга (каждый прибавляет 150–300 мс), перегруженный промежуточный сервер, сетевые задержки. Дополнительно проверьте параметр MINIMUM CW WAIT в CCcam.cfg — слишком низкое значение иногда вызывает коллизии. Радикальное решение — перейти на источник с hop 1 и локальной картой.
Где находятся конфигурационные файлы OScam?
Зависит от сборки. На большинстве Enigma2-приставок (OpenPLi, OpenATV) — /etc/tuxbox/config/oscam/. На части сборок — /usr/keys/. Точный путь OScam пишет в самом начале лога при запуске: ищите строку вида Config dir: /etc/tuxbox/config/oscam/. Основные файлы: oscam.conf, oscam.server, oscam.user, oscam.services. Путь можно задать явно параметром -c /path/to/config/ при запуске.
Что означает ошибка «line offline» и как её исправить?
Сервер недоступен. Алгоритм проверки: сначала telnet host 12000 — если timeout, проблема в сети или firewall. Если connection refused — сервис не запущен или порт не тот. Проверьте правильность хоста, порта, логина и пароля в конфиге. Если ресивер за NAT — убедитесь, что нужные порты пробрасываются в настройках роутера. Иногда «line offline» означает просто временную недоступность источника — подождите минуту и проверьте снова через webif.
Законно ли использовать card sharing?
Зависит от сценария и юрисдикции. Технически и юридически нейтральны сценарии: собственная легально купленная карта, несколько ресиверов в одном домохозяйстве, тестирование DVB-оборудования, изучение протоколов. Раздача доступа к платным каналам третьим лицам, которые не являются вашими подписчиками — это уже нарушение договора с вещателем, а в ряде стран и уголовно наказуемо. Перед настройкой убедитесь, что ваш сценарий соответствует условиям использования вашей подписки.
Практические советы для стабильного просмотра
Даже самая стабильная линия 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 или внешние мониторы.